我需要先使用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
。
有没有办法做到这一点?