asp.net-mvc – 存储库模式:每个实体一个存储库类?

前端之家收集整理的这篇文章主要介绍了asp.net-mvc – 存储库模式:每个实体一个存储库类?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
假设您在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);
}

(希望我的意见有点有用:))

猜你在找的asp.Net相关文章