我刚开始在一个中等规模的项目上使用LINQ to SQL,想增加自己对L2S所提供的优势的了解。
我看到的一个缺点是它增加了另一层代码,我理解它比使用存储过程和ADO.Net性能较慢。此外,调试可能是一个挑战,特别是对于更复杂的查询,这些查询最终可能会被移动到存储过程中。
我一直希望能够在更好的开发环境中编写查询,L2S查询是否是我一直在寻找的解决方案?还是我们只是在SQL之上创建了另一层,并且现在需要担心两倍的问题?
我刚开始在一个中等规模的项目上使用LINQ to SQL,想增加自己对L2S所提供的优势的了解。
我看到的一个缺点是它增加了另一层代码,我理解它比使用存储过程和ADO.Net性能较慢。此外,调试可能是一个挑战,特别是对于更复杂的查询,这些查询最终可能会被移动到存储过程中。
我一直希望能够在更好的开发环境中编写查询,L2S查询是否是我一直在寻找的解决方案?还是我们只是在SQL之上创建了另一层,并且现在需要担心两倍的问题?
L2S提供的优势:
关于性能:
关于调试:
关于另一层:
只是一些快速的想法。
LINQ总体而言
LINQ到SQL(或其他数据库LINQ)
这绝不是万能药,但我远比直接进行SQL查询或使用存储过程喜欢它。
我必须说它们是你一直在寻找的东西。需要一些时间去适应,但一旦你适应了,就不能想着回去了(至少对于我来说是这样)。
关于linq与存储过程的比较,如果你构建不当,两者都可能性能不佳。我将一个客户端的一些糟糕编码的存储过程转换成linq to sql,所需时间从20秒(对于Web应用程序完全不可接受)减少到小于1秒,并且代码量比存储过程的解决方案少得多。
更新1:此外,您可以获得很多灵活性,因为您可以限制获取的列,实际上只会检索该列。在存储过程的解决方案中,您必须为获取的每个列集定义一个存储过程,即使底层查询相同。
更新一下,以下是关于LINQ to SQL未来的一些链接:
微软确认了他们对LINQ to SQL生命周期结束的立场吗?
正如最后一个链接中的评论所述,LINQ to SQL不会消失,只是至少不会被微软“改进”。请根据您的开发计划谨慎考虑这些评论和帖子。