我想知道
是什么[DatabaseGenerated(DatabaseGenerationOption.Computed)]
DataAnnotation确实如此。但是,我无法通过谷歌搜索或MSDN搜索找到任何信息。有没有人有任何想法?
答案 0 :(得分:9)
计算列是表中不可更新的列,而是基于行中的其他数据。
它与View类似,但更轻量级,可以PERSISTED
而无需构建索引视图。
例如,您可以使用计算列将两个数字相加(在T-SQL中):
CREATE TABLE [Foo]
(
[FooId] int NOT NULL IDENTITY,
CONSTRAINT [Foo_PK] PRIMARY KEY ([FooId]),
[ItemA] int,
[ItemB] int,
[Sum] AS ([ItemA] + [ItemB])
)
实体框架需要了解这些列,以便它不会尝试发出尝试更改该列值的Update语句。
答案 1 :(得分:3)
该属性用于代码优先的实体框架,它指定如何生成值。 DatabaseGenerationOptions
是Identity
,Computed
,None
的枚举,其中Identity
映射到标识列,Computed
是计算列。< / p>