给定一个数据库表,其中有一列包含历史数据但不再填充,实体框架中是否有一种方法可以读取该列,但在使用相同的模型对象时防止它被更新?
例如我有一个对象
public class MyObject
{
public string CurrentDataColumnName { get; set; }
public string HistoricDataColumnName { get; set; }
}
从文档来看,我不认为我可以执行以下任一操作,因为这将阻止 EF 读取数据并保留数据。
(1) 装饰HistoricDataColumnName
具有以下属性的属性
[NotMapped]
(2) 将以下内容添加到我的EntityTypeConfiguration
for MyObject
Ignore(x => x.HistoricDataColumnName)
您可以将该列标记为已计算,以防止实体框架更新/插入该列。
[DatabaseGenerated(DatabaseGeneratedOption.Computed)]
public string HistoricDataColumnName { get; set; }
数据库生成 https://msdn.microsoft.com/en-us/library/jj591583(v=vs.113).aspx#Anchor_9
数据库的一个重要特性是计算的能力
特性。如果您将 Code First 类映射到以下表
包含计算列,您不希望实体框架尝试
更新这些列。但您确实希望 EF 从以下位置返回这些值
插入或更新数据后的数据库。您可以使用
DatabaseGenerate 注释来标记类中的这些属性
以及计算枚举。其他枚举有 None 和 Identity。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)