我有这个存储库方法:
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
一些地方,一些如何..
有任何想法吗?