6

CQRS 和 CRUD 有什么不同,我可以在这两种情况下使用 UnitOfWork 和 Repository 模式吗?

如果我在您推荐我的实体之间存在复杂的关系,为什么?

CQRS 模式http ://martinfowler.com/bliki/CQRS.html
CRUDhttp ://en.wikipedia.org/wiki/Create,_read,_update_and_delete

任何帮助将不胜感激。

4

2 回答 2

5

CQRS 通常用于复杂的应用项目。DDD 也用于复杂的应用项目,似乎与 CQRS 相关。DDD 试图处理行为的复杂性。CRUD 系统几乎没有行为。一个行为很少或没有行为的系统实际上并不具有复杂的事件结构,因此很难说您从 CQRS 中获得了多少好处。

于 2013-09-05T09:27:15.530 回答
4

CRUD - 你对一个对象执行读写操作。

CQRS - 您将读取和写入操作拆分为两个单独的对象。您可以对其进行简化,并将其实现为一个对象上的两个独立接口:一个用于读取,一个用于写入。然后,您可以根据需要实例化对象。或者您可以进一步移动它,并使用单独的数据库进行读取和写入。

对于大多数情况,CRUD 是答案,但 CQRS 可以适用于一些复杂的场景。

如果您使用的是实体框架,则不应使用工作单元和存储库,因为它是由 EF 原生实现的。

在 CRUD 中,使用 Unit of Work 和 Repository 是正常的。对于 CQRS - 我不知道。

于 2016-10-28T10:05:41.457 回答