EF Core学习01 利用EF Core建表及添加种子数据

一.Entity Framework Core简介
Entity Framework (EF) Core 是轻量化、可扩展和跨平台版的常用 Entity Framework 数据访问技术。
EF Core 可用作对象关系映射程序 (O/RM),以便于 .NET 开发人员能够使用 .NET 对象来处理数据库,这样就不必经常编写大部分数据访问代码了。
详情请参考官方文档:https://docs.microsoft.com/zh-cn/ef/core/
二.利用EF Core进行数据库建表
1.建立model
首先创建类库项目,EFCore.DoMainModels,在其中建立Province类,

using System;
using System.Collections.Generic;
using System.Text;

namespace EFCore.DoMainModels
{
    public class Province
    {
        public int Id { get; set; }
        public string Name { get; set; }
        public int Population { get; set; }

    }
}

2.建立迁移文件等
本实例采用sqlserver数据库,所以再创建一个类库项目,EFCore.Data,并利用Nuget安装Microsoft.EntityFrameworkCore.SqlServer以及Microsoft.EntityFrameworkCore.Tools两个依赖项。
然后在该项目中建立MyContext类,代码如下

using System;
using System.Collections.Generic;
using System.Text;
using EFCore.DoMainModels;
using Microsoft.EntityFrameworkCore;

namespace EFCore.Data
{
    public class MyContext:DbContext
    {
        //Province的DbSet对象,利用此对象对数据库进行操作
        public DbSet<Province> Provinces { get; set; }
        //重写OnConfiguring方法,修改连接字符串
        protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
        {
            //数据库连接字符串,此处直接写死,实际环境建议写入配置文件,如appconfig
            optionsBuilder.UseSqlServer("Server=(localdb)\\mssqllocaldb;Database=EFCoreDemo;Trusted_Connection=True;");
        }
    }
}

然后再程序包管理器控制台中进行迁移文件创建,如图
在控制台中输入在控制台中输入add-migration加名字,如add-migration addData,执行,会自动建立migrations文件夹,并在文件夹中建立addData文件,意味创建迁移文件成功。
我们在实际开发过程中,生产环境和开发环境是分开的,所以一般是需要生成sql脚本。
在控制台中执行script-migration命令,生成sql脚本。用于生产环境的修改。
开发环境修改直接在控制台执行update-database就可以成功建表了。
二.创建种子数据
我们有时候会有在建表时直接添加数据的需求,我们可以在MyContext文件中进行操作。
在MyContext中重写OnModelCreating方法。

protected override void OnModelCreating(ModelBuilder modelBuilder)
        {
            //添加种子数据
            modelBuilder.Entity<Province>().HasData(
                new Province
                {
                    Id = 1,
                    Name = "北京",
                    Population = 200000000
                },new Province {Id = 2,Name = "上海",Population = 100000000}
            );
        }

建立迁移文件,然后执行update-database修改数据库。
对应sql语句同样可以执行script-migration查看。
注意:打开控制台后,项目要选择data项目,即安装了EF Core依赖的项目。

猜你喜欢

转载自blog.csdn.net/weixin_39714231/article/details/87003069
今日推荐