Другой альтернативой, если ваши where
фильтры являются простыми скалярами, является создание метода (ов) расширения для свойств DbSet
контекста вашей базы данных.
Если ваш DbContext
похож на:
public class MyContext : DbContext
{
...
public DbSet<Customer> Customers { get;set; }
...
}
Вы можете создавать запросы многократного использования на Customers
DbSet
, например:
public static class MyDbContextExtension
{
public static IEnumerable<Customer> GetByName(this DbSet<Customer> customers, string name)
{
return customers.Where(c => c.Name.Contains(name));
}
}
А затем используйте его как:
var context = new MyContext();
var jedis = context.Customers.GetByName("skywalker");
if(jedis.Any())
{
logger.Log("These aren't the customers you're looking for");
}