用于在接口上映射的实体框架解决方法

时间:2015-01-09 09:52:37

标签: c# asp.net-mvc entity-framework-6

我想创建一种在我的实体框架应用程序中应用软删除的通用方法。我有一个定义删除字段的接口模型:

public interface IModel
{
    bool Deleted { get; set; }
    Nullable<DateTime> Created { get; set; }
    Nullable<DateTime> Modified { get; set; }
}

我的应用程序中几乎每个模型都实现了这个IModel。为了让DbContext省略删除设置为true的所有记录,我想应用映射。我已经使用this好文章作为我实施的基础。

protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
    modelBuilder.Entity<IModel>()
        .Map(m => m.Requires("Deleted").HasValue(false))
        .Ignore(m => m.Deleted);
}

然而,实体框架(显然)不支持接口上的映射。这让我一直在努力让这个工作以这样一种方式工作,即我不必单独将这个映射应用于每个模型。

我是否有其他流畅的API方法可以在所有实现IModel的模型上应用映射而不需要大量多余的代码?

0 个答案:

没有答案