2
我已經創建了一個通用的工作單元/存儲庫模式,並且在大多數情況下都可以使用。實體框架 - 如何重用查詢
下面是一個例子:
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();
}
}
爲了數據的大小保持在最低限度,我試圖篩選各主查詢。我的問題是,如何使上述更加可重用?
上面的方法有一個過濾器,但這可能是2,3或更多。如果可能的話,我不想爲每個變體創建一個方法,但只要IEnumerable<T>
退出上下文,就不能再調用ToList()
或其他東西。這意味着在這一點上的所有內容都已經具體化,儘管它可能不會被使用並且只會影響性能。
任何人都有任何擴展此背景的經驗,正如我所描述的那樣?