一般的な作業単位/リポジトリパターンを作成しましたが、ほとんどの場合機能します。
次に例を示します。
public IEnumerable<Deal> GetBySubcategory(int subcategoryId)
{
using (var uow = new ReadUow())
{
var r = new ReadRepo<Deal>(uow.Context);
var deals = r.FindBy(d => d.DealSubcategories.Any(s => s.SubcategoryId == subcategoryId))
.Include("DealSubcategories");
return deals.ToList();
}
}
データのサイズを最小限に抑えるために、各メインクエリをフィルタリングしようとしています。私が持っている質問は、上記をより再利用可能にする方法ですか?
上記の方法には1つのフィルターがありますが、これは2、3、またはそれ以上になる可能性があります。可能であれば、バリエーションごとにメソッドを作成したくはありませんIEnumerable<T>
が、コンテキストを終了するとすぐに、呼び出しToList()
などを行わないと使用できなくなります。これは、使用されていない可能性があり、パフォーマンスにのみ影響を与える可能性がある場合でも、その時点ですべてが具体化されることを意味します。
私が説明したように、誰かがこのコンテキストを拡張した経験がありますか?