现有数据库和迁移

Existing Database and migrations

我已经有一个数据库(在 __MigrationHistory table 中有迁移历史)和项目,都是从零开始创建的。我使用了 'Code First from Database' 选项并生成了所有 classes。现在我想再创建一个table,我创建了一个class:

[Table("Companies")]
public partial class Company
{
    [Key]
    public int ID { get; set; }
    public string Name { get; set; }
}

然后我为我的上下文启用了迁移(项目中有 2 个上下文,使用了 2 个数据库):

Enable-Migrations -ProjectName Infrastructure -ContextTypeName Infrastructure.Asset.AssetContext

它创建了 "Migrations" 个文件夹和 Configuration.cs 个文件。

接下来,我尝试添加迁移:

Add-Migration -Name Company -ProjectName Infrastructure

它会创建迁移,但是会创建(删除)table 秒,这已经存在。

为什么?我只想创造差异。

您可以访问原始上下文和迁移吗?您应该继续在现有项目的基础上构建迁移。如果不这样做,那么您应该创建一个新的 Code First 上下文,对现有数据库进行逆向工程,然后重新启用迁移以从头开始。

创建迁移后在包管理器控制台中 运行 命令

update-database

这应该反映迁移中所做的任何更改