CQRS 和 CRUD 之间有什么区别,我可以在这两种情况下使用 UnitOfWork 和存储库模式吗?
如果我在主体之间有复杂的关系,你推荐我哪一个,为什么?
CQRS 模式:http://martinfowler.com/bliki/CQRS.html
克鲁德 : http://en.wikipedia.org/wiki/Create,_read,_update_and_delete
任何帮助将不胜感激。
CQRS 通常用于复杂的应用程序项目。 DDD 还用于复杂的应用程序项目,并且似乎与 CQRS 相关联。DDD 尝试处理行为的复杂性。 CRUD系统几乎没有行为。行为很少或没有行为的系统实际上没有复杂的事件结构,因此很难说您从 CQRS 中获得多少好处。
CRUD - 对一个对象执行读取和写入操作。
CQRS - 将读取和写入操作拆分为两个单独的对象。您可以简化它,并将其实现为一个对象上的两个独立接口:一个用于读取,一个用于写入。然后,您可以根据需要实例化对象。或者,您可以进一步移动它,并使用单独的数据库进行读取和写入。
在大多数情况下,CRUD 就是答案,但 CQRS 可以适用于某些复杂的方案。
如果使用的是实体框架,则不应使用工作单元和存储库,因为它是由 EF 本机实现的。
在 CRUD 中,使用工作单元和存储库是正常的。对于 CQRS - 我不知道。