为什么要使用Dapper? 任何人都可以评论Dapper Vs ADO.NET优点和缺点

我想了解一个人真的需要考虑使用Dapper的时间。 另外,我想了解比较Dapper Vs ADO.NET的优点和缺点

Dapper只是一个工具。 它的作用是:

  • 使查询正确参数化非常容易
  • 使执行查询(标量,多行,多网格和无结果)变得非常简单
  • 使结果变成对象非常容易
  • 非常有效和迅速

不做的是:

  • 为您生成一个类模型
  • 为您生成查询
  • 跟踪对象及其更改,以便您可以只调用SubmitChanges() (或其他)

原始dapper库不提供CRUDfunction,但“contrib”附加包确实提供了基本的CRUD。

基本上,它不是一个全权重的ORM,但如果你只是想在不必 ORM 对抗的情况下运行查询,或者支付与ORM相关的开销,那就非常棒了。 如果您不了解SQL,原始库可能不适合您(尽管“contrib”应该没问题),但很多人不仅知道 SQL,而且他们希望控制 SQL(而不是让ORM提出一些未经优化的意图解释,等等。

总而言之,原因可能是:

  • 您希望以最小的开销实现出色的原始执行性能
  • 你想保持对SQL的控制
  • 您不需要或不需要全脂ORM的对象跟踪function

至于“vs ADO.NET”:

  • 原始的ADO.NET涉及更多的代码编写和许多边缘情况要记住(那个小巧玲珑的内部处理而不需要担心它们)
  • 但它实际上并不快 – dapper做了大量的元编程来存储和重用策略一旦它完成了你的查询所需的
  • 如果您正在使用原始ADO.NET中不可用的特定于提供程序的function(例如,传递/获取SqlGeometry数据),那些不能直接在dapper中使用 – 您需要实现一个接口来告诉它如何处理你的场景,但这并不难(请注意特定的SqlGeometry示例由另一个dapper库处理)