在.NET中从数据库检索数据的最快方法?

在.NET中从数据库检索数据的最快方法?,.net,ado.net,.net,Ado.net,使用,从数据库检索数据并将数据填充到我的业务对象中的最快方法是什么 我应该用哪一个DBDataReader,DBDataAdapter,或任何其他类 有没有办法使这个过程自动化?假设基于属性名并将其与数据库字段名匹配?如果您想要自动化,您正在寻找orm。你可以看看一些较轻的wieght,比如massive、ormlite、dapper和PetaPoco 使用ADO.NET,从数据库检索数据并将数据填充到我的业务对象中的最快方法是什么 有没有办法使这个过程自动化?比如说,基于属性名并将它们与数据库

使用,从数据库检索数据并将数据填充到我的业务对象中的最快方法是什么

我应该用哪一个
DBDataReader
DBDataAdapter
,或任何其他类


有没有办法使这个过程自动化?假设基于属性名并将其与数据库字段名匹配?

如果您想要自动化,您正在寻找orm。你可以看看一些较轻的wieght,比如massive、ormlite、dapper和PetaPoco

使用ADO.NET,从数据库检索数据并将数据填充到我的业务对象中的最快方法是什么

有没有办法使这个过程自动化?比如说,基于属性名并将它们与数据库字段名匹配


。绝对炽热。

这听起来和ORM或micro ORM的功能一模一样。这是的输出(大约在1分钟前运行,在一台也在忙着进行代码转换的PC上运行,所以不是100%可靠-请自己运行)。。。这也是一个非常有限的测试-一如既往,测试应该代表您的特定环境-但由于我们无法预测您的环境,因此我们使用我们的环境来代替!我已经将“整洁”的标记为
,以补充这一点;在dapper测试套件中,我们故意针对我们所知的所有引擎运行一些原始性能测试,dapper获胜。注意,其他一些是接近的;然而,L2S和EF离我们还很远。Dapper的设计就是关于速度的。其他一些(例如simple.data)主要是为了方便开发人员(但仍然比EF等快得多)@marcgravel在进行基准测试时,您是否考虑到这些orm是否也这样做?例如,可能有一些orms自己处理连接建立和关闭(因为在实际场景中,您不需要多次迭代来运行这些),与在一个开放实例上运行的其他orms相比,在循环中运行这样的orms将非常慢。我认为您的套件中的
亚音速ActiveRecord
每次都在打开和关闭连接。所以应该是
FluentData
,您还没有对其进行基准测试。您听说过可能的重复吗?根据一些基准测试:1)在主页上,2)来自。如果您可以在
dapper
的原始测试套件中包含
SqlFu
,那就太好了。@nawfal我来看看。Re perf:dapper和原始ado.net之间没有太多值得注意的地方,但我会看一看!哈哈哈,这是一个很好的观点,但是。。让我这样的宗教狂热者平静下来尽管如此,SqlFu的语法与dapper非常接近。作为SqlFu的作者,我可以告诉你dapper是最快的,但与其他微格式相比,它的特性最少。Dapper代表绝对速度,其他代表速度和功能之间的平衡。@user1451111它们都使用
SqlDataReader
;但是,如果您的意思只是
SqlDataReader
,那么:“手工编码”
Running 500 iterations that load up a post entity
Mapper Query (non-buffered) took 57ms          <==== dapper
hand coded took 57ms
Dynamic Mapper Query (buffered) took 58ms      <==== dapper
PetaPoco (Fast) took 58ms
Dynamic Mapper Query (non-buffered) took 59ms  <==== dapper
Mapper Query (buffered) took 60ms              <==== dapper
Dapper.Cotrib took 60ms                        <==== dapper
PetaPoco (Normal) took 66ms
Dynamic Massive ORM Query took 67ms
BLToolkit took 88ms
Simple.Data took 96ms
Linq 2 SQL Compiled took 99ms
NHibernate Session.Get took 127ms
SubSonic Coding Horror took 128ms
Entity framework CompiledQuery took 130ms
NHibernate HQL took 132ms
NHibernate SQL took 134ms
NHibernate Criteria took 173ms
Soma took 184ms
Linq 2 SQL ExecuteQuery took 230ms
Linq 2 SQL took 694ms
NHibernate LINQ took 700ms
Entity framework ESQL took 730ms
Entity framework ExecuteStoreQuery took 735ms
Entity framework took 991ms
Entity framework No Tracking took 1011ms
SubSonic ActiveRecord.SingleOrDefault took 4345ms
(end of tests; press any key)