gpt4 book ai didi

cqrs - 在 CQRS 中将 MicroORM 用于读取层

转载 作者:行者123 更新时间:2023-12-01 10:07:16 27 4
gpt4 key购买 nike

亲们,我正在考虑将 Dapper.net 等 microORM 用于 CQRS 应用程序 (Asp.Net MVC) 的读取访问组件,并使用 Entity Framework 来操作域。

这是 CQRS light,我没有使用事件源等。我看到它多次提到 CQRS 中的只读模型应该是 light/simpleas 查询数据层,可能使用类似 ADO.net 的东西这意味着可能在我们的代码或某些 XML 文件中对 SQL 查询字符串进行硬编码。在我们必须在一侧维护域映射而在另一侧维护 SQL 语句的情况下,我应该如何证明这种方法的合理性?

有没有人以这种方式在 CQRS 解决方案中使用 MicroORM?谢谢米克

最佳答案

是的,您绝对可以使用 Dapper、PetaPoco、Massive、Simple.Data 或您喜欢的任何其他微型 ORM。过去我们使用 NHibernate 来解决这个问题,但它是一个 10,000 磅的问题。 gorilla 与我们需要的相比。

在我们对这些库的评估中,我们真正喜欢 Simple.Data 和 Petapoco 的一件事是,它们每个都可以使您的查询适应不同的数据库引擎(包括 Mongo),而只需进行最少的必要调整,而 Dapper 基本上是一大堆SQL 字符串——它是“字符串类型的”。不要误会我的意思,Dapper 很棒,速度非常非常快,绝对会很好用。只需在提交之前评估您的功能和非功能需求。

以下是使用 NuGet 为每个主要微型 ORM 下载的相对数量(截至 2012 年 1 月 1 日左右)。对我们来说,拥有一个拥有大量下载的良好社区始终是必须的,以便在出现问题时帮助解决问题:

  • 5568 简单数据
  • 4990 佩塔波科
  • 4913 小巧玲珑
  • 2203 大规模
  • 1152 OrmLite

最后,您可能想要调查的一件事是您对读取模型完全使用 SQL 的原因。如果您的域正在发布事件(无论事件来源如何),并且您正在编写简单的、平面的/非关系 View 模型,那么您可能能够摆脱像推送到浏览器的 JSON 文件这样简单的东西然后浏览器解释并使用它来填充您的 HTML 模板。有各种可用的选项,您只需要确定最适合您的场景的选项即可。

关于cqrs - 在 CQRS 中将 MicroORM 用于读取层,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9193993/

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