Gop*_*i P 2 c# entity-framework
我是新来Entity Framework的C#。
我的表中有一个计算列table1(示例)。我将根据其他列值计算计算列值。我不想Entity Framework在执行插入/更新操作时包括计算列。我怎样才能EF避免那个特定的列。但我想手动设置该特定列的值。
我搜索了相同的内容,但无法得到我的问题的答案。请帮助我,并提前致谢。
您可以使用NotMapped注释
代码优先约定规定,支持的数据类型的每个属性都在数据库中表示。该属性可以动态创建,不需要存储。您可以使用 NotMapped 注释标记未映射到数据库的任何属性。
[NotMapped]
public string Something
{
get
{
return _something;
}
set
{
_something = value
}
}
Run Code Online (Sandbox Code Playgroud)
更新:这不会映射到 dB,所以可能不是你要找的
只是为了使DatabaseGenerated注释更完整,您正在寻找的机器人是
一个重要的数据库特性是具有计算属性的能力。如果您将 Code First 类映射到包含计算列的表,您不希望 Entity Framework 尝试更新这些列。但是您确实希望 EF 在您插入或更新数据后从数据库中返回这些值。您可以使用 DatabaseGenerated 注释来标记类中的这些属性以及 Computed 枚举。其他枚举是 None 和 Identity。
哪个可以与 DatabaseGeneratedOption
Computed:数据库在插入或更新行时生成一个值。
Identity:数据库在插入一行时生成一个值。
无:数据库不生成值。
[DatabaseGenerated(DatabaseGenerationOption.Computed)]
public string Something { get; set; }
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1734 次 |
| 最近记录: |