我要开始一个新项目。我对应该在我的项目中使用哪种技术感到有些困惑:Dapper或Entity Framework。 MS SQL Server 2008R2和VS2017
任何人都可以帮助决定选择吗?
答案 0 :(得分:3)
这两种产品以自己的方式都非常有能力而且非常有用。
Entity Framework试图通过消除大量编写SQL代码的需要来提高程序员的生产力-您可以使用C#表达所有内容,并让EF处理将其转换为SQL语句的所有细节。但是EF是一个很大的野兽,并且并非总是能获得最佳性能-尤其是对于批量操作。
Dapper非常小,非常快-但缺点是它依赖纯原始SQL语句来获取其数据-因此,您需要能够轻松编写SQL查询以与Dapper一起使用。
我更喜欢Dapper用于小型,快速,肮脏的项目,或者小型工具和助手-获取数据的好方法。
EF很大,很像野兽,但是对于企业级应用程序来说,它可以挽救生命。
答案 1 :(得分:3)
Dapper比Entity Framework快。如果性能是最大的问题,则可以使用dapper!但是,如果您想要快速的开发并在性能上有所妥协,则可以使用实体框架。
答案 2 :(得分:1)
这取决于数据模型和性能要求。
对于简单查询,应用程序 Dapper 的平面数据或对吞吐量敏感的部分是更好的选择。
如果您的数据本质上是关系型的,并且您必须轻松访问链接的对象,则 EF 是个不错的选择。
答案 3 :(得分:0)
毫无疑问,带有LINQ的实体框架很棒。但是实体框架是有代价的。与使用ADO.NET的SqlDataAdapter相比,使用LINQ + Entity Framework会为每个数据检索增加时间。成本很小(从三分之一毫秒到100毫秒不等),但也不是零。
如果速度对您很重要,但是您不想放弃面向对象的数据访问,那么可以考虑使用Dapper。与实体框架一样,Dapper是一个对象关系映射器,它允许您对关系数据库发出查询并获取对象。与实体框架相比,Dapper的吸引力在于其响应时间等同于使用纯ADO.NET。