Gre*_*ick 12 c# entity-framework
给定一个包含历史数据但不再填充的列的数据库表,是否有一种方法可以在Entity Framework中读取该列但是在使用相同的模型对象时阻止它更新?
例如,我有一个对象
public class MyObject
{
public string CurrentDataColumnName { get; set; }
public string HistoricDataColumnName { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
从文档中我不相信我可以做以下任何一种,因为这将阻止EF读取数据并保持它.
(1)HistoricDataColumnName使用以下属性装饰属性
[NotMapped]
Run Code Online (Sandbox Code Playgroud)
(2)将以下内容添加到我的EntityTypeConfigurationforMyObject
Ignore(x => x.HistoricDataColumnName)
Run Code Online (Sandbox Code Playgroud)
您可以将列标记为已计算,以防止Entity Framework更新/插入该列.
[DatabaseGenerated(DatabaseGeneratedOption.Computed)]
public string HistoricDataColumnName { get; set; }
Run Code Online (Sandbox Code Playgroud)
一个重要的数据库功能是具有计算属性的能力.如果要将Code First类映射到包含计算列的表,则不希望Entity Framework尝试更新这些列.但是,您确实希望EF在插入或更新数据后从数据库中返回这些值.您可以使用DatabaseGenerated注释来标记类中的这些属性以及Computed enum.其他枚举是None和Identity.
| 归档时间: |
|
| 查看次数: |
2748 次 |
| 最近记录: |