У меня есть этот метод репозитория:с использованием OData Queryable с репозиторием?
public IQueryable<TModel> GetAll()
{
using (var context = new DatabaseContext())
{
return context.Set<TModel>().AsQueryable();
}
}
TModel
, где художник-модель .. в любом случае
И тогда я это действие в мой контроллер:
// GET api/artist
[Queryable]
public IQueryable<ArtistModel> Get()
{
return _repo.GetAll().AsQueryable();
}
Теперь .. если Я бы изменил метод репозитория, чтобы вернуть список, а также добавить .ToList
для моего результата .. тогда это будет отлично работать. Но тогда независимо от того, какой запрос OData приходит. Я бы все же сначала выполнил «получить весь запрос» .. превратил их в список, а затем я выполнил бы мой запрос OData к этому списку.
Что кажется просто равным неверно .. то, что я хотел бы сделать, - убедиться, что запрос OData будет выполняться в то же время, когда я пытаюсь извлечь данные из базы данных .. поэтому я получаю только конкретный результат, соответствующий запросу .. и не огромная куча данных, которые затем позже получают опрошены ..
Теперь у меня есть проблема с DbContext
получать расположенную сразу за пределами использования .. но я все еще нужен, чтобы закрыть DbContext
, а некоторые, где, как некоторые. .
Любые идеи?
Часть вопроса в вашем мышлении вызывает метод GetAll(), потому что на самом деле это не происходит. Он возвращает объект запроса, чей POTENTIAL SET объектов - все из них. Если вы вдруг добавите ToList() в GetAll(), то вы меняете контакт метода. – Rich