我可以在实体框架6中制作全局查询过滤器吗?通过OnModelCreating



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

我试着在EF 6中做这样的事情:(IsDeleted是我的Class Cliente中的一个布尔属性(

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

我会感谢你的帮助,谢谢你!

我认为您希望在应用程序中实现软删除。要应用全局查询筛选器,您也可以采用这种方法。

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

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

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);

最新更新