DBFirst
(1)Microsoft.EntityFrameworkCore (2)Microsoft.EntityFrameworkCore.Design (3)Microsoft.EntityFrameworkCore.SqlServer (4)Microsoft.EntityFrameworkCore.Tools
从VS的菜单栏"工具"选项中打开"程序包管理器(Package Manager)控制台"再输入:
Scaffold-DbContext -Connection "Server=.;Database=EFCoreDemo;uid=sa;pwd=123" Microsoft.EntityFrameworkCore.SqlServer -OutputDir "Models"
-OutputDir "Models" 会在项目中添加models文件夹,生成的context和实体类都放到models文件夹中,如不加,实体则直接生成到项目中
Code First
首先创建dbContext和Model实体
public class Employee { public int EmployeeId { get; set; } public string Name { get; set; } public string Address { get; set; } public string CompanyName { get; set; } public string Email { get; set; } public int age { get; set; } }
public class dbContext : DbContext { public dbContext(DbContextOptions<dbContext> options) : base(options) { } protected override void OnModelCreating(ModelBuilder modelBuilder) { modelBuilder.Entity<Employee>().HasData( new Employee() { EmployeeId = 1, Name = "Robin", Address = "上海", CompanyName = "腾讯", Email = "Robin@tengxun.com", age = 22 }, new Employee() { EmployeeId = 2, Name = "Susan", Address = "北京", CompanyName = "头条", Email = "Susan@toutiao.com", age = 20 }); } public virtual DbSet<Employee> Employee { get; set; } }
{ "Logging": { "LogLevel": { "Default": "Information", "Microsoft": "Warning", "Microsoft.Hosting.Lifetime": "Information" } }, "ConnectionStrings": { "SqlConn": "data source=.;Initial Catalog=UserInfo;User ID=sa;Password=123456;MultipleActiveResultSets=True;App=EntityFramework;" }, "AllowedHosts": "*" }
下面可以使用Entity Framework Core Migrations生成数据库和表了。
从VS的菜单栏"工具"选项中打开"程序包管理器(Package Manager)控制台",然后选择要为其生成迁移代码的默认项目,这里选择的项目是我们的EFCoreMigration。
为了创建迁移代码文件,需要使用“ add-migration MigrationName”命令。这里我们就把MigrationName的文件名称改为MigrationDB,在Package Manager控制台中,只需键入“ add-migration MigrationDB”命令,然后按Enter。
成功执行add-migration命令后,它将在项目中创建一个名为“ Migrations”的文件夹,并使用在执行带有迁移脚本文件名称的add migration命令时提供的名称MigrationDB创建该类。在这个MigrationDB类中可以看到基于模型(员工)的表结构,该表结构已准备好生成数据库。
我们仅创建了负责创建数据库及其表的迁移脚本。但是我们还没有创建实际的数据库和表。这就需要执行生成好的迁移脚本,用于生成实际的数据库和表。执行迁移脚本的命令用“ update-database”。
目前,我们只有一个迁移脚本,所以不需要提供迁移名称,直接用update-database命令。如果我们有多个迁移脚本,则必须提供名称以及命令update-database MigrationDB,如下所示:
上面的命令成功执行后,打开SQL Server Management Studio查看数据库。将找到Code First迁移进来的数据库EmployeeDB、数据库表Employees和Entity Framework迁移历史记录表__EFMigrationsHistory
现在,修改Employee模型,并添加一个新的属性字段,如薪水Salary,其类型为float。
public class Employee { public int EmployeeId { get; set; } public string Name { get; set; } public string Address { get; set; } public string CompanyName { get; set; } public string Email { get; set; } public int age { get; set; } public float Salary { get; set; } }
转到程序包管理器控制台并运行以下命令以添加迁移文件,这一次,我们将迁移的名称指定为“ addsalary”。
add-migration addsalary
了使用新列Salary作为薪水来更新数据库中的表,需要在程序包管理器控制台运行以下命令来更新数据库:
update-database addsalary
更多详情https://blog.csdn.net/ananlele_/article/details/107140177