C#笔记之EF Code First 数据模型 数据迁移
在使用.NET Core进行开发时,EF Code First被广泛用作ORM框架,在应用程序开发的不同阶段,会涉及到数据模型的改变,而EF Code First提供了一些工具来管理数据迁移,下面将介绍如何进行EF Code First数据模型的创建、数据迁移的方法和注意点。
创建数据模型
新建项目
首先,我们需要新建一个.NET Core项目,具体可以在VS中选择新建项目,然后选择ASP.NET Core Web Application,之后根据需求配置好基本信息。
安装EF Core库及SQL Server数据库
在项目中打开Nuget包管理器控制台,依次输入以下命令来安装EF Core库及SQL Server数据库:
Install-Package Microsoft.EntityFrameworkCore.SqlServer
Install-Package Microsoft.EntityFrameworkCore.Tools
配置DbContext
在新建的项目中,需要配置DbContext,以便于EF Core使用:
public class MyContext : DbContext
{
public DbSet<Student> Students { get; set; }
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
optionsBuilder.UseSqlServer(@"Data Source=(localdb)\MSSQLLocalDB;Initial Catalog=MyDb;");
}
}
创建数据模型
接下来,就可以创建我们的数据模型了,通过如下代码,我们可以创建一个名为Student
的数据模型:
public class Student
{
public int Id { get; set; }
public string Name { get; set; }
public int Age { get; set; }
}
创建好数据模型之后,我们就可以在数据库中创建对应的表了。
创建数据库
我们可以使用如下命令来创建数据库:
PM> Add-Migration InitialCreate
PM> Update-Database
这些命令会在项目的目录中自动生成一个Migrations
目录和一个InitialCreate.cs
文件,同时自动在数据库中创建一个Students
表来存放学生的数据。
数据迁移
修改数据模型
当我们对数据模型进行修改时,需要使用EF Core的数据迁移工具来对数据库进行更新。比如我们需要添加一个Gender
字段,我们只需要做如下修改:
public class Student
{
public int Id { get; set; }
public string Name { get; set; }
public int Age { get; set; }
public string Gender { get; set; } // 添加Gender字段
}
然后我们需要在控制台中输入如下命令:
PM> Add-Migration AddGender
这个命令会在项目的目录中自动生成一个AddGender.cs
文件,这个文件包含了EF Core框架自动探测到的数据模型的变化,我们可以自己修改这些代码,然后执行如下命令来将数据库更新为最新的数据模型:
PM> Update-Database
回退数据迁移
有时我们会需要回退一些数据迁移,以修复bug或做其他的调整,可以使用如下命令:
PM> Update-Database <MigrationID>
其中MigrationID
是要回退到的迁移文件的ID,如果不指定MigrationID
,则会将数据库回退到最开始的状态。
总结
以上是EF Core Code First的基本用法,我们可以使用EF Core构建出整个应用程序的数据访问层,在进行数据模型的管理时,EF Core提供了方便的数据迁移工具,可以帮助我们快速高效地实现数据模型的变更和持续集成。
示例代码:
// 数据模型
public class Student
{
public int Id { get; set; }
public string Name { get; set; }
public int Age { get; set; }
public string Email { get; set; }
}
// DbContext
public class MyContext : DbContext
{
public DbSet<Student> Students { get; set; }
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
optionsBuilder.UseSqlServer(@"Data Source=(localdb)\MSSQLLocalDB;Initial Catalog=MyDb");
}
}
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C#笔记之EF Code First 数据模型 数据迁移 - Python技术站