残念ながら、私は、私が従う必要があるアーキテクチャを持っています。私のプロジェクトでは、リポジトリ層とサービス層という2つの層があります。EnableQueryパラメータをリポジトリレイヤに渡す
サービスレイヤは、ASP.NET Web APIに実装されています。私はすべての注文を返すメソッドを持っています:GetOrders()。このメソッドは、Entity Frameworkで実装されているリポジトリのGetOrders()という1つのメソッドのみを呼び出します。
私は[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をインスタンス化すると、静的メソッドからIQueryableも返すことができますか?
もう一度、ありがとうございます。
「使用する」を削除します。つまり、コンテキストを破棄しないでください。 DbContextオブジェクトで[常にDispose()を呼び出す必要はありますか?]を参照してください。 Nope](http://blog.jongallant.com/2012/10/do-i-have-to-call-dispose-on-dbcontext.html) –