using System; using System.Collections.Generic; using System.Data.Entity; using System.Linq; using System.Linq.Expressions; namespace DataAccess.Extensions { public static class IDbSetExtensions { public static IDbSet ApplyFilter(this IDbSet dbSet, Expression> filter) where T : class { return filter == null ? dbSet : dbSet.Where(filter) as IDbSet; } public static IDbSet ApplyFilters(this IDbSet dbSet, IEnumerable>> filters) where T : class { if (filters == null) return dbSet; foreach (var filter in filters) { dbSet.Where(filter); } return dbSet; } } }