【EF Core】先创建的数据库表,如何用ef的code first迁移
若已手动创建数据库表,需通过 EF Core Code First 迁移 将现有数据库与模型同步,以下是具体步骤:
1. 创建与数据库匹配的模型类
确保实体类(如 Product)属性与数据库表结构一致(包括主键、字段类型等):
public class Product
{
public int Id { get; set; } // 主键需与数据库一致
public string Name { get; set; }
public decimal Price { get; set; }
}
2. 配置 DbContext
在 DbContext 中注册实体类,并配置连接字符串:
public class AppDbContext : DbContext
{
public DbSet<Product> Products { get; set; }
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
optionsBuilder.UseSqlServer("Server=.;Database=YourDB;Integrated Security=True;");
}
}
3. 启用迁移
在 程序包管理器控制台 执行:
Add-Migration InitialCreate
4. 手动处理迁移文件
打开生成的迁移文件(如 20250531_InitialCreate.cs),注释掉 Up() 方法中的 CreateTable 代码,仅保留 __MigrationsHistory 表的操作:
protected override void Up(MigrationBuilder migrationBuilder)
{
// migrationBuilder.CreateTable(...); // 注释此行
}
5. 应用迁移
执行以下命令,仅更新迁移记录(不修改表结构):
Update-Database
此操作会在数据库的 __MigrationsHistory 表中添加记录,标记迁移已完成
。
6. 后续模型变更
若需修改模型(如新增字段):
更新实体类。
创建新迁移:
Add-Migration AddNewColumn
应用变更:
Update-Database

浙公网安备 33010602011771号