我创建了一个通用的工作单元/存储库模式,它在大多数情况下都有效。
这是一个例子:
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()
这意味着此时的一切都已实现,即使它可能不会被使用并且只会影响性能。
正如我所描述的那样,任何人都有扩展此上下文的经验吗?