我尝试进行全局查询。我知道这在 EF Core 2.0 中是可能的,但是我需要使用 EF 6 来完成。

我尝试在 EF 6 中做这样的事情:
(IsDeleted 是我的 Class Cliente 中的一个属性为 bool 值)

protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
    base.OnModelCreating(modelBuilder);
modelBuilder.Entity<Client>().HasQueryFilter(x => x.IsDeleted= false);
}

我将感谢您的帮助,谢谢!

最佳答案

我相信您希望在应用程序中实现软删除。要应用全局查询过滤器,您也可以遵循此方法。

首先使用 NuGet 安装 System.linq.Dynamic Library。

然后创建一个扩展方法,如:

public static IQueryable<T> WhereDeleted<T>(this IQueryable<T> source)
    {
        return source.Where("IsDeleted== false");
    }

然后你可以像这样调用其他方法:
var client = db.Client.Include("whatever you need").WhereDeleted().Where(c => c.Age < 30);

关于c# - 我可以在 Entity Framework 6 中创建全局查询过滤器吗?通过 OnModelCreating?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53794257/

10-17 01:47