假设您在 LINQ 类中定义了以下实体:
Product
Customer
Category
我是否应该为所有人设置一个存储库类:
StoreRepository
...或者我应该:
ProductRepository
CustomerRepository
CategoryRepository
各自的优缺点是什么?就我而言,我的解决方案中有几个“应用程序”……Store 应用程序只是其中之一。
最佳答案
这是我的观点。我是 Repository 模式的严格追随者。应该有 3 个方法接受单个实体。添加、更新、删除,一般定义。
public interface IRepository<T>
{
void Add(T entity);
void Update(T entity);
void Delete(T entity);
}
除了这些方法之外,您还要处理“查询”或服务方法。如果我是你,我会像上面一样定义存储库,添加如下所示的“QueryProvider”和 将您的业务逻辑放在“服务”或“命令/查询”(来自 CQRS,谷歌它)中的位置 .
public interface IQueryProvider<T>
{
TResult Query<TResult>(Func<IQueryable<T>, TResult> query);
}
(希望我的意见有点用:))
关于asp.net-mvc - 存储库模式 : One repository class for each entity?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3524646/