如何首先在代码中使用迁移添加计算列?

Wad*_*eed 3 entity-framework database-migration ef-code-first

我在我的数据模型中添加了这个计算列

[DatabaseGenerated(DatabaseGeneratedOption.Computed)]
    public string FullName { get; private set; }
Run Code Online (Sandbox Code Playgroud)

之后,我使用此查询在我的数据库中创建了它

ALTER TABLE [MyDataBase].[dbo].[User] ADD FullName as ([FirstName] + ' ' + [LastName])
Run Code Online (Sandbox Code Playgroud)

当我运行我的代码时,我收到一个错误,指出我的数据库已更改。我的问题如何为这个计算列创建迁移(因为它已经使用 sql 查询创建了)

Mar*_*k E 6

Entity Framework 不知道如何正确处理计算列的迁移,因此您需要帮助它。

首先,从数据库中的表中删除计算列。

然后在包管理器控制台中创建一个新的迁移:

add-migration FullNameComputed
Run Code Online (Sandbox Code Playgroud)

Up()新迁移中的方法主体替换为以下内容:

Sql("ALTER TABLE [TableName] ADD [FullName] AS ([FirstName] + ' ' + [LastName])");
Run Code Online (Sandbox Code Playgroud)

最后,从包管理器控制台运行迁移:

update-database
Run Code Online (Sandbox Code Playgroud)