现有数据库和迁移
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
这应该反映迁移中所做的任何更改
我已经有一个数据库(在 __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
这应该反映迁移中所做的任何更改