不幸的是,我有一個我需要遵循的體系結構。對於我的項目,我們有兩層:存儲庫層和服務層。將EnableQuery參數傳遞給存儲庫層
服務層在ASP.NET Web API中實現。我有一個方法將返回所有的命令:GetOrders()。該方法將只調用一個方法:存儲庫的GetOrders(),它在實體框架中實現。
我已經用[EnableQuery]屬性裝飾了get方法,但是如何將這些可查詢參數「傳遞」到存儲庫層中的GetOrders()?
下面是一些代碼:
服務:
[EnableQuery]
public IQueryable<Order> GetOrders()
{
return OrderRepository.GetOrders();
}
庫:
public static class OrderRepository
{
public static IQueryable<Order> GetOrders()
{
using (OrderContext context = new OrderContext())
{
...
}
}
}
此外,STATIC關鍵字是麻煩我。在你建議在類的方法之外創建一個OrderContext的靜態變量之前,我不能這樣做。我的老闆是當前模式的堅持者:沒有靜態變量等。他希望它全部包含在方法中。當我在實例化DbContext WITHIN方法時,如何從靜態方法返回一個IQueryable?
再次感謝所有。
刪除'使用',即不處理上下文。請參閱[我是否總是必須在我的DbContext對象上調用Dispose()?都能跟得上](http://blog.jongallant.com/2012/10/do-i-have-to-call-dispose-on-dbcontext.html) –