老式SQL DB访问与ORM(NHibernate,EF等)。谁赢?

时间:2008-09-12 21:10:43

标签: orm ado.net

我已经成功编写了自己的SQL访问代码,其中包含存储过程和参数化查询以及我编写的一个小包装库,以最大限度地减少ADO.NET垃圾。这对我来说过去一切都很顺利,而且我的工作效率很高。

我正在进入一个新项目 - 我应该把我的旧学校的东西放在我身后并深入研究基于ORM的解决方案吗? (我知道NHibernate和EF之间存在很大的高概念差异 - 我不想在这里进入。为了争论,让我们甚至将LINQ与旧学校的替代品混为一谈。)我在寻找关于ORM类型的实际应用的建议反对我所知道的(并且非常了解)。

老派的ADO.NET代码还是ORM?我确信有曲线 - 曲线是否有投资回报率,让事情变得有价值?我很着急并且愿意学习,但确实有截止日期。

3 个答案:

答案 0 :(得分:2)

我发现当我对代码进行原型设计时,LINQ to SQL要快得多。当我现在需要一些东西时,它就会消除任何其他方法。

但是有成本。与手动存储过程相比,LINQ很慢。特别是如果你不是很小心,因为看似微小的变化可能会突然变成1 + N个查询。

我的推荐。首先使用LINQ to SQL,然后如果没有获得所需的性能,则使用swtich进行处理。

答案 1 :(得分:1)

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

从几年前开始,{p> This blog post from Frans Bouma引用了动态SQL(暗示ORM)优于存储过程的优点,引发了火热的火焰战。

答案 2 :(得分:0)

蒙特利尔的DevTeach对这个话题进行了很好的讨论。如果您转到此URL:http://www.dotnetrocks.com/default.aspx?showNum=240,您将能够听到该领域的两名专家(Ted Neward和Oren Eini)讨论每种方法的优缺点。对于一个没有明确答案的主题,你可能会找到最好的答案。