Der*_*ker 26 linq asp.net-mvc repository-pattern linq-to-sql
假设您在LINQ类中定义了以下实体:
Product
Customer
Category
Run Code Online (Sandbox Code Playgroud)
我应该为所有人拥有一个存储库类:
StoreRepository
Run Code Online (Sandbox Code Playgroud)
......或者我应该:
ProductRepository
CustomerRepository
CategoryRepository
Run Code Online (Sandbox Code Playgroud)
每个人的利弊是什么?就我而言,我的解决方案中有几个"应用程序"...... Store应用程序只是其中之一.
zow*_*ens 19
这是我的观点.我是Repository模式的严格追随者.应该有3种方法采用单个实体.添加,更新,删除,一般定义.
public interface IRepository<T>
{
void Add(T entity);
void Update(T entity);
void Delete(T entity);
}
Run Code Online (Sandbox Code Playgroud)
除了这些方法之外,您还在处理"查询"或服务方法.如果我是你,我会按照上面的流程定义存储库,添加一个"QueryProvider",如下所示,并将您的业务逻辑放在 "服务"或"命令/查询"中(来自CQRS,Google)它).
public interface IQueryProvider<T>
{
TResult Query<TResult>(Func<IQueryable<T>, TResult> query);
}
Run Code Online (Sandbox Code Playgroud)
(希望我的意见有点有用:))
这一切都取决于你将如何"领域驱动设计".你知道聚合根是什么吗?大多数情况下,一般打字可以做你所有的基本CRUD就足够了.它只有当你开始拥有带有上下文和边界的厚模型时才开始变得重要.
归档时间: |
|
查看次数: |
5578 次 |
最近记录: |