如何首先在代码中使用迁移添加计算列?
How to add computed column using migrations in code first?
我已经在我的数据模型中添加了这个计算列
[DatabaseGenerated(DatabaseGeneratedOption.Computed)]
public string FullName { get; private set; }
之后我使用这个查询在我的数据库中创建了它
ALTER TABLE [MyDataBase].[dbo].[User] ADD FullName as ([FirstName] + ' ' + [LastName])
当我 运行 我的代码时,我收到一条错误消息,指出我的数据库已更改。
我的问题如何为此计算列创建迁移(因为它已经使用 sql 查询创建)
Entity Framework 不知道如何正确处理计算列的迁移,因此您需要帮助它。
首先,从数据库中的table中删除计算列。
然后在包管理器控制台中创建一个新的迁移:
add-migration FullNameComputed
将新迁移中 Up()
方法的主体替换为以下内容:
Sql("ALTER TABLE [TableName] ADD [FullName] AS ([FirstName] + ' ' + [LastName])");
最后,运行 从包管理器控制台迁移:
update-database
我已经在我的数据模型中添加了这个计算列
[DatabaseGenerated(DatabaseGeneratedOption.Computed)]
public string FullName { get; private set; }
之后我使用这个查询在我的数据库中创建了它
ALTER TABLE [MyDataBase].[dbo].[User] ADD FullName as ([FirstName] + ' ' + [LastName])
当我 运行 我的代码时,我收到一条错误消息,指出我的数据库已更改。 我的问题如何为此计算列创建迁移(因为它已经使用 sql 查询创建)
Entity Framework 不知道如何正确处理计算列的迁移,因此您需要帮助它。
首先,从数据库中的table中删除计算列。
然后在包管理器控制台中创建一个新的迁移:
add-migration FullNameComputed
将新迁移中 Up()
方法的主体替换为以下内容:
Sql("ALTER TABLE [TableName] ADD [FullName] AS ([FirstName] + ' ' + [LastName])");
最后,运行 从包管理器控制台迁移:
update-database