【发布时间】:2017-07-18 11:07:05
【问题描述】:
我正在尝试编写一个在 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 建议创建迁移并注释掉创建的迁移文件中的字段,但这很臭,我无法逃脱!
【问题讨论】:
标签: c# entity-framework ef-code-first linq-to-entities