zoukankan      html  css  js  c++  java
  • 使用 ASP.NET Core 和 Entity Framework Core 入门

    先决条件

    安装以下组件:

    使用EF code First 创建学生信息

    1.添加student类

    public class Student
        {
            public int ID { get; set; }
            [StringLength(50)]
            public string LastName { get; set; }
            [StringLength(60, ErrorMessage = "First name cannot be longer than 50 characters.")]
            public string FirstMidName { get; set; }
            [DataType(DataType.Date)]
            [DisplayFormat(DataFormatString = "{0:yyyy-MM-dd}", ApplyFormatInEditMode = true)]
            public DateTime EnrollmentDate { get; set; }
    
            public ICollection<Enrollment> Enrollments { get; set; }
        }

    2.创建的数据库上下文(添加DataContext类继承Microsoft.EntityFrameworkCore.DbContext

    namespace EFCoreSample.Models
    {
        public class DataContext: DbContext
        {
            public DataContext(DbContextOptions<DataContext> options)
                : base(options)
            {
    
    
            }
            public DbSet<Student> Students { get; set; }
            //public DbSet<Course> Courses { get; set; }
            //public DbSet<Enrollment> Enrollments { get; set; }
    
            protected override void OnModelCreating(ModelBuilder modelBuilder)
            {
    
                //modelBuilder.Entity<Course>().ToTable("Course");
                //modelBuilder.Entity<Enrollment>().ToTable("Enrollment");
                modelBuilder.Entity<Student>().ToTable("Student");
            }
        }
    
    }

    3.上下文注册依赖关系注入  

       1.appsettings.json配置数据库连接字符串

    {
      "ConnectionStrings": {
        "SqlServer": "Data Source=.;Initial Catalog=SchoolDb;Integrated Security=True"
      },
      "Logging": {
        "IncludeScopes": false,
        "LogLevel": {
          "Default": "Warning"
        }
      }
    }

     2.打开Startup.cs  ConfigureServices方法添加代码

    public void ConfigureServices(IServiceCollection services)
            {
                services.AddDbContext<DataContext>(options =>
                options.UseSqlServer(Configuration.GetConnectionString("SqlServer")));
                services.AddMvc();
            }

    3.创建数据库已经初始化数据

    添加DbInitializer.cs

     public static class DbInitializer
        {
            public static void Initialize(DataContext context)
            {
                //当数据库数据为空时,默认填充数据
                context.Database.EnsureCreated();
                if (context.Students.Any()) 
                {
                    return;
                }
                var students = new Student[]
                 {
                new Student{FirstMidName="Carson",LastName="Alexander",EnrollmentDate=DateTime.Parse("2005-09-01")},
                new Student{FirstMidName="Meredith",LastName="Alonso",EnrollmentDate=DateTime.Parse("2002-09-01")},
                new Student{FirstMidName="Arturo",LastName="Anand",EnrollmentDate=DateTime.Parse("2003-09-01")},
                new Student{FirstMidName="Gytis",LastName="Barzdukas",EnrollmentDate=DateTime.Parse("2002-09-01")},
                new Student{FirstMidName="Yan",LastName="Li",EnrollmentDate=DateTime.Parse("2002-09-01")},
                new Student{FirstMidName="Peggy",LastName="Justice",EnrollmentDate=DateTime.Parse("2001-09-01")},
                new Student{FirstMidName="Laura",LastName="Norman",EnrollmentDate=DateTime.Parse("2003-09-01")},
                new Student{FirstMidName="Nino",LastName="Olivetto",EnrollmentDate=DateTime.Parse("2005-09-01")}
                 };
                foreach (Student s in students)
                {
                    context.Students.Add(s);
                }
                context.SaveChanges();
              
            }
        }

    找到Program.cs Main方法添加代码

     public static void Main(string[] args)
            {
                var host = BuildWebHost(args);
    
                using (var scope = host.Services.CreateScope())
                {
                    var services = scope.ServiceProvider;
                    try
                    {
                        var context = services.GetRequiredService<DataContext>();
                        DbInitializer.Initialize(context);
                       
                    }
                    catch (Exception ex)
                    {
                        var logger = services.GetRequiredService<ILogger<Program>>();
                        logger.LogError(ex, "An error occurred while seeding the database.");
                    }
                }
    
                host.Run();
            }

    ps:可以添加相应的Controller和view运行项目操作数据

    更多例子请参考 https://docs.microsoft.com/zh-cn/aspnet/core/data/ef-mvc/intro

  • 相关阅读:
    [转]如何选购塑料水杯(塑料口杯、茶杯)
    【转】在sqlserver下增加MYSQL的链接服务器,实现分布式数据库开发第一步
    MySql: 查看当前登录用户,当前数据库
    python import, from xx import yy
    python class metaclass instance
    git: fatal: Not a git repository (or any of the parent directories): .git
    Python flask 基于 Flask 提供 RESTful Web 服务
    Python flask @app.route
    MySql: log 位置
    MySql: 忘记root密码
  • 原文地址:https://www.cnblogs.com/MingqiSs/p/7978218.html
Copyright © 2011-2022 走看看