假设您在LINQ类中定义了以下实体:
Product Customer Category
我应该有一个存储库类为所有:
StoreRepository
…或我应该有:
ProductRepository CustomerRepository CategoryRepository
什么是pro&缺点每个?在我的情况下,我有我的解决方案中的几个“应用程序”…商店应用程序只是其中之一。
解决方法
这是我的观点。我是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); }
(希望我的意见有点有用:))