欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

ASP.NET Core 中使用EF Core 将实体映射到数据库表的方法(SQL Server)

程序员文章站 2022-03-25 15:49:42
前段时间听过一个关于使用ASP.NET Core建立项目的视频。其中使用EF Core映射到数据库的部分是按部就班地学习。今天自己建立项目时,有些步骤已经有一些遗忘。所以写下这篇文章,顺便理清思路。 新建项目后: 1、Models文件夹下建立实体类,如User 2、建立数据库上下文类XXXXXDbC ......

前段时间听过一个关于使用ASP.NET Core建立项目的视频。其中使用EF Core映射到数据库的部分是按部就班地学习。今天自己建立项目时,有些步骤已经有一些遗忘。所以写下这篇文章,顺便理清思路。 

新建项目后:

1、Models文件夹下建立实体类,如User

    public class User
    {
        public int Id { get; set; }

        public int Account { get; set; }

        public int Password { get; set; }
    }

2、建立数据库上下文类XXXXXDbContext,建议直接在项目根目录下建立文件夹EntityFramework,将这个类文件置于该路径下

    public class SchoolDbContext : DbContext
    {
        public SchoolDbContext(DbContextOptions<SchoolDbContext> options):base(options)  { }

        public DbSet<User> Users { get; set; }

        protected override void OnModelCreating(ModelBuilder modelBuilder)
        {
            modelBuilder.Entity<User>().ToTable("t_user");
        }
    }

modelBuilder.Entity<User>().ToTable("t_user")表示实体User映射到数据库中的表名称为t_user

3、在Startup.cs文件的ConfigureServices方法中注入数据库上下文

        // This method gets called by the runtime. Use this method to add services to the container.
        public void ConfigureServices(IServiceCollection services)
        {
            services.Configure<CookiePolicyOptions>(options =>
            {
                // This lambda determines whether user consent for non-essential cookies is needed for a given request.
                options.CheckConsentNeeded = context => true;
                options.MinimumSameSitePolicy = SameSiteMode.None;
            });

            //注入
            services.AddDbContext<SchoolDbContext>(d => d.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")));

            services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1);
        }

其中的Configuration.GetConnectionString("DefaultConnection")的意思是获取配置文件中名称为"DefaultConnection"的连接字符串。可在appsettings.json文件中添加该连接串:

{
  "ConnectionStrings": {
    "DefaultConnection": "Data Source=localhost;Database=SchoolManageSystem;User ID=sa;Password=Sa;"
  },
  "Logging": {
    "LogLevel": {
      "Default": "Warning"
    }
  },
  "AllowedHosts": "*"
}

4、在Nuget的程序包管理控制台下依次输入add-migration First_Migration、update-database,将实体类映射到数据库。使用数据库查看工具,即可看到数据库中已经生成了名为t_user的表。

ASP.NET Core 中使用EF Core 将实体映射到数据库表的方法(SQL Server)