2016-11-16 6 views

答えて

0

(QueryTranslatorインタフェースを実装せずに)最も簡単な方法は、「== entity.Active真の」すべてのクエリを使用して実行したいのは、この

public static IQyertable<YourEntity> OnlyActiveEntities(this YourDbContext context, Action<DbSet<YourEntity>> setConfigurator = null) 
{ 
    var dbSet = context.Set<YourEntity>(); 
    setConfigurator?.Invoke(dbSet); 

    return context.Set<YourEntity>().AsQueriable().Where(entity => entity.Active == true); 
} 
1

一部のサードパーティのようなあなたのコンテキストのための拡張メソッドを作成することですライブラリは、フィルタリングクエリを可能にする:Entity Framework Filter Library List

免責事項:EF +クエリ:私はプロジェクトEntity Framework Plus

ウィキの持ち主ですフィルタ

この機能は、あなたが探しているものとまったく同じです。すべてのクエリをフィルタリングするためのグローバルフィルタを追加できます。

例:

// using Z.EntityFramework.Plus; // Don't forget to include this. 

QueryFilterManager.Filter<ISoftDelete>(q => q.Where(x => x.IsActive));