我可以先使用EF6代码创建计算列吗

时间:2019-03-20 10:42:43

标签: c# sql-server entity-framework-6 ef-code-first

我需要先使用EF6代码在数据库表中创建一个计算列。以下是我尝试生成的表定义:

CREATE TABLE [Dim].[Account](
    [pkAccount] [int] IDENTITY(1,1) NOT NULL,
    [Account] [nvarchar](20) NULL,
    [AccountDescription] [nvarchar](100) NULL,
    [AccountGroup] [nvarchar](20) NULL,
    [Chksum] AS checksum([Account],[AccountDescription],[AccountGroup])
) ON [PRIMARY]

我希望Chksum列在执行选择时计算一个值,而不是在外部计算并存储为静态值。

我尝试使用DefaultValueSql属性修改DbMigration,如下所示:

AlterColumn("Dim.Account", "Chksum", b => b.Int(false, false, defaultValueSql: "checksum([Account],[AccountDescription],[AccountGroup])"));

这返回了错误The name "[Account]" is not permited in this context

有没有办法做到这一点?

0 个答案:

没有答案