【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
posted @ 2025-05-31 22:52  .Neterr  阅读(89)  评论(0)    收藏  举报