从数据库中删除EF6 Code First DbSet上的计算属性

时间:2017-02-27 17:49:11

标签: c# entity-framework ef-code-first linq-to-entities

我正在尝试编写一个在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建议创建迁移并在创建的迁移文件中注释掉该字段,但这非常臭,我无法逃避这个!

1 个答案:

答案 0 :(得分:0)

找到它:[NotMapped]

非常感谢!