【发布时间】:2015-06-29 13:26:13
【问题描述】:
我在网上看到很多存储库模式的例子,签名如下或类似:
public void IRepository<T>
{
void Insert(T object);
void Update(T object);
void Delete(T object);
T GetById(int id);
IEnumerable<T> GetAll();
}
令我困惑的是,为什么 CUD 元素是存储库模式的一部分? 根据Martin Fowler,CUD 操作应该是工作单元模式的一部分。
多年来,我一直在 EF 中使用 Fowler 的方法,并且效果很好。我认为它适用于任何其他 ORM。
如果有人能从架构和逻辑的角度解释为什么我们应该将 CUD 操作放在存储库模式中,我很感兴趣?很明显,这两种方法都有效,但我们为什么要选择另一种呢? Fowler 的风格不是更符合 CQRS 精神吗?
【问题讨论】:
标签: repository-pattern unit-of-work cqrs