我正在尝试编写一个在EF6中使用的模型,其中包含我想用C#(而不是SQL)计算的属性。我的模型看起来像这样:
public class UploadRequestWorkingHours : UploadRequest
{
[DatabaseGenerated(DatabaseGeneratedOption.Computed)]
public int WorkingHoursSinceResponseDate
{
get { return DateUtils.WorkingHoursSince(ResponseDate); }
private set { }
}
}
UploadRequest
类包含详细信息,此派生类引入了一个属性,该属性应在序列化模型时由LINQ / EF /任何人计算。
不幸的是,这个属性 - WorkingHoursSinceResponseDate
- 正在进入数据库,即使我已将该类标记为Computed
。我也试过None
。我从阅读EF文档中了解到,这个DatabaseGeneratedOption
仍然会在数据库中创建一个列;我一直关注有很多投票的帖子such as this one,但实际上,我认为这不是解决方案。
如何防止模型中的计算属性进入数据库? Another post建议创建迁移并在创建的迁移文件中注释掉该字段,但这非常臭,我无法逃避这个!
答案 0 :(得分:0)
找到它:[NotMapped]
非常感谢!