[DatabaseGenerated(DatabaseGenerationOption.Computed)]数据注释有什么作用?

Kal*_*exx 8 c# entity-framework code-first entity-framework-4

我想弄清楚是什么

[DatabaseGenerated(DatabaseGenerationOption.Computed)]
Run Code Online (Sandbox Code Playgroud)

DataAnnotation确实如此.但是,我无法通过谷歌搜索或MSDN搜索找到任何信息.有谁有想法吗?

Joh*_*zen 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])
)
Run Code Online (Sandbox Code Playgroud)

实体框架需要了解这些列,以便它不会尝试发出尝试更改该列值的Update语句.