我刚开始在一个中型项目上使用LINQ to SQL,并希望增加我对L2S提供的优势的理解。
我看到的一个缺点是它增加了另一层代码,我的理解是它的性能比使用存储过程和ADO.Net要慢。似乎调试可能是一个挑战,特别是对于更复杂的查询,并且这些最终可能最终被移动到存储过程。
我一直想要一种在更好的开发环境中编写查询的方法,L2S查询我一直在寻找的解决方案吗?或者我们刚刚在SQL上创建了另一个层,现在需要担心两倍?
答案 0 :(得分:41)
L2S提供的优势:
关于效果:
关于debuging:
关于其他图层:
答案 1 :(得分:14)
只是一些简单的想法。
LINQ一般
LINQ to SQL(或其他数据库LINQ)
它绝不是灵丹妙药,但我非常喜欢它直接进行SQL查询或使用存储过程。
答案 2 :(得分:2)
就像更新一样,这里有一些关于LINQ to SQL未来的链接:
What is the Future of Linq to SQL
Has Microsoft confirmed their stance on LINQ to SQL end-of-life?
作为上一个链接中的评论,LINQ to SQL不会消失,只是至少没有“改进”微软。按照您的意愿阅读这些评论和帖子,只需在您的开发计划中保持谨慎。
答案 3 :(得分:1)
我必须说他们是你一直在寻找的。它需要一些时间来适应它,但一旦你这样做,你不能想到回去(至少对我来说)。 关于linq与存储过程,如果构建错误,可能会导致性能不佳。我转移到linq来sql客户端的一些存储过程,这些存储过程被严格编码,因此时间从20秒(对于Web应用程序来说完全无法实现)下降到< 1秒。而且存储过程解决方案的代码要少得多。
更新1:此外,您还可以获得很大的灵活性,因为您可以限制所获得的列,而实际上只能检索它。在存储过程解决方案上,您必须为您获得的每个列集定义一个过程,即使基础查询是相同的。
答案 4 :(得分:0)
我们最近在Entity Framework环境中切换到了LINQ2Entity。以前,我们有基本的SQLadapters。由于我们正在使用的数据库相当小,我无法评论LINQ的性能。
我必须承认,编写查询变得更加容易,添加实体确实可以实现强类型。