CQRS读边ORM还是纯ADO.NET?

时间:2014-03-29 14:59:40

标签: c# orm cqrs

我正在使用CQRS模式实现我的第一个项目,现在我必须决定如何实现读取端。 我考虑的第一种方法是使用ORM(实体框架/ NHibernate或者有人可以为我推荐一些更快的ORM吗?)并将模型映射到sql视图。最初我在考虑使用索引视图,但我读了一些关于某些性能问题的文章(在写作期间),这导致我放弃了这个想法(http://sqlblog.com/blogs/alexander_kuznetsov/archive/2009/06/02/be-ready-to-drop-your-indexed-view.aspx)。 我考虑的第二种方法是使用纯ADO.NET(数据读取等)并自己编写sql。 您认为哪种方法最好?或者有更好的一个?

3 个答案:

答案 0 :(得分:3)

我建议使用dapperdotnetormlite

我已广泛使用这两种工具,并且每次我转移到遗留代码以协助查询时都会发现自己会返回这些工具。

它们都非常快,并且提供了与原始ADO.NET足够的抽象,以使您的代码可读。

我不是ORM的忠实粉丝,我过去常常使用它们但是发现CQRS让我从使用相同的模型读取和写入中解放出来,所以ORM有点变得非常沉重屁股疼痛。

答案 1 :(得分:3)

这实际上取决于您系统的要求。正如@boz建议的那样,使用像Dapper这样的轻量级对象可以很好地适用于您的系统。此外,如果您的写入方面相当简单,或者您处理命令以展平数据,您可以使用文档存储库,如MongoDBRaven(或许多其他人),然后让您的读取侧拉物体。

同样,它实际上取决于您的要求,但更简单的选择,如轻量级对象映射器或NoSQL选项,绝对可以为您阅读。祝你好运!

答案 2 :(得分:0)

与NHibernate + Fluent一起使用我用过的最好的组合。干净的方法,非常容易使用。