Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/asp.net-mvc-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
老式的SQL数据库访问与ORM(NHibernate、EF等)。谁赢了?_Orm_Ado.net - Fatal编程技术网

老式的SQL数据库访问与ORM(NHibernate、EF等)。谁赢了?

老式的SQL数据库访问与ORM(NHibernate、EF等)。谁赢了?,orm,ado.net,Orm,Ado.net,我已经成功地编写了自己的SQL访问代码,结合了存储过程和参数化查询,并编写了一个小包装器库,以尽量减少ADO.NET的麻烦。在过去,这一切对我来说都很好,我一直都很有成效 我正在着手一个新的项目——我是否应该把我以前的东西抛在脑后,研究一个基于ORM的解决方案?(我知道NHibernate和EF在概念上有很大的不同——我不想在这里讨论这个问题。为了便于讨论,让我们甚至把LINQ与老式的替代方案结合起来。)我正在寻找关于ORM类型的东西在现实世界中的应用的建议,与我所知道的(而且我知道得很清楚)相

我已经成功地编写了自己的SQL访问代码,结合了存储过程和参数化查询,并编写了一个小包装器库,以尽量减少ADO.NET的麻烦。在过去,这一切对我来说都很好,我一直都很有成效

我正在着手一个新的项目——我是否应该把我以前的东西抛在脑后,研究一个基于ORM的解决方案?(我知道NHibernate和EF在概念上有很大的不同——我不想在这里讨论这个问题。为了便于讨论,让我们甚至把LINQ与老式的替代方案结合起来。)我正在寻找关于ORM类型的东西在现实世界中的应用的建议,与我所知道的(而且我知道得很清楚)相比


老式ADO.NET代码还是ORM?我确信有一条曲线——这条曲线是否有一个让事情变得有价值的投资回报率?我很着急,也很愿意学习,但确实有一个最后期限。

我发现,当我制作代码原型时,LINQ到SQL的速度要快得多。当我现在需要一些东西的时候,它就吹走了任何其他的方法

但这是有代价的。与手动滚动存储过程相比,LINQ速度较慢。特别是如果您不太小心,因为看似微小的更改可能会突然变成1+N查询


我的推荐。首先使用LINQ-to-SQL,如果您没有获得所需的性能,则切换到procs。

这是一个很好的问题,但也是一个非常有争议的话题


几年前,引用动态SQL(意味着ORM)优于存储过程的优点引发了一场激烈的火焰之战。

蒙特利尔的DevTeach就这一主题展开了热烈的讨论。如果你访问这个URL:你将能够听到该领域的两位专家(Ted Neward和Oren Eini)讨论每种方法的优缺点。对于一个没有确切答案的问题,你可能会找到最好的答案

我希望DotNetRocks能够采访编写System.Data.DataSet的人,了解他/她对ORM的看法。我还很好奇使用F#或ocaml的函数式程序员对ORM的开销有何看法。