现有数据库和迁移

时间:2017-06-19 20:15:51

标签: c# entity-framework ef-code-first ef-migrations

我已经有一个数据库(在__MigrationHistory表中有迁移历史记录)和项目,从零开始创建。我使用了“Code First from Database”选项,并生成了所有类。现在我想创建一个表,我创建了一个类:

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

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

  

启用 - 迁移 - 项目基础结构--ContextTypeName   Infrastructure.Asset.AssetContext

它创建了“Migrations”文件夹和Configuration.cs文件。

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

  

添加迁移-Name Company -ProjectName Infrastructure

它创建了迁移,但是对于已存在的表,使用Create(Drop)。

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

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

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

  

更新的数据库

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