Breeze JS - репозиторий с EFContextProvider, включающий / отключающий фильтрацию OData
Я ищу реализовать шаблон хранилища с легким EFContextProvider. В этом репозитории я бы представил метод для запроса к БД с использованием фильтрации OData ... так же, как breeze ведет себя по умолчанию. Я также хотел бы предоставить метод, который игнорировал бы фильтрацию OData и возвращал список элементов, как если бы это был контекст EF по умолчанию.
Итак, подытожив, я хотел бы попытаться сделать что-то вроде этого:
public class RepositoryBaseEntity : IRepository where T : class
{
protected Breeze.WebApi.DataModelContainer _context;
public RepositoryBaseEntity(Breeze.WebApi.EFContextProvider context)
{
_context = context;
}
///
/// Gets all elements, ignoring OData filtering
///
/// All elements, or null if none exists
public IEnumerable GetAll()
{
// disable OData filtering in Breeze.WebApi.EFContextProvider
return _context.Context.Set();
}
///
/// Apply ODataFilters and get elements. Useful for Web API controllers
///
///
public IEnumerable ApplyODataFiltersAndGet()
{
// enable OData filtering in Breeze.WebApi.EFContextProvider
return _context.Context.Set();
}
}
взглянул на Breeze EFContextProvider, и нетКажется, это способ отключить фильтрацию OData.
Хотя, возможно, я использую простой старый Entity Framework DataModelContainer, когда я неЯ не хочу фильтровать OData и использовать оболочку Breeze EFContextProvider, когда я хочу фильтровать OData ... но при таком подходе у меня будет два контекста EF ... и эточто-то, чего я хочу избежать ... в прошлом в некоторых других проектах мыУ нас были некоторые проблемы с использованием более одного контекста EF.
Итак, вы, ребята, видите какой-нибудь способ сделать это? Спасибо!