gpt4 book ai didi

asp.net-mvc - 存储库模式 : One repository class for each entity?

转载 作者:行者123 更新时间:2023-12-03 10:28:24 25 4
gpt4 key购买 nike

假设您在 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com