- LINQ(语言集成查询)的优缺点是什么?
- 什么是使用LINQ的最好和最坏的情况?
- 您对使用LINQ有什么好处或没有受益?
- 哪些数据源最有利于LINQ?
回答
我是LINQ的粉丝,尽管它需要保持透视,而不是被视为银弹。
优点:
- 声明的方式让查询更容易理解和更紧凑
- 可扩展性和表达式树允许多个来源
- 即使在处理查询可以通过其他方式来实现大部分一致查询比LINQ的对象 - 例如并行LINQ和我自己的推式LINQ框架。非常灵活。
- 惊人有用的进程查询,它是最容易理解
- 大,以便能够避免串等,可以很容易地对LINQ添加
- 默认提供运营商,以及其他范围广SQL到对象主要为LINQ引入
- 语言特征广泛适用别处(耶为lambda表达式)
缺点:
- 查询表达式理解不够好,并且被过度使用。通常简单的方法调用更简单。供应商之间的
- 不可避免的矛盾 - 阻抗不匹配仍然存在,这是合理的,但需要理解
- 总会有一些东西,你可以在SQL做,但不是在LINQ
- 不理解这是怎么回事,它的容易编写非常低效的代码
- 很难编写LINQ提供程序。这可能是不可避免的,但微软的更多指导将不胜感激。
- 这是想对于大多数开发人员的数据访问的新方法,并且需要时间理解渗透
- 未进行具体LINQ,但与它有关 - 在C#中被发现扩展方法的方法是粒度不够
- 某些运营商“缺少”,特别是
OrderBy
等同于排序的其他内容 - 例如寻找项目与 - 延迟执行和流知之甚少的属性的最大值(但改善)
- 调试可能是由于延迟执行非常棘手和流
- 在某些特定情况下,LINQ可以显著比手动代码慢。你理解内部运作越好,你就能更好地预测这一点。(当然,如果性能对你很重要,你应该围绕它进行适当的测试。)
我觉得在处理进程内查询时最好。他们很容易预测,理解和扩展。诸如LINQ to XML和并行LINQ等互补技术非常棒。几乎可以在任何地方使用LINQ to Objects。
LINQ to SQL等非常适合他们,但他们很难理解,需要更多的专业知识。它们也仅适用于您的代码的某些区域。
dams很多缺点,但我仍然喜欢它 – 2008-11-07 07:09:15
他们应该重命名该网站Skeetoverflow国际海事组织。 – cfeduke 2008-11-07 07:20:00
@Nathan:是的,名单是令人畏惧的 - 但专业人士更重要:)我一直想念LINQ所有的时间,我用Java编写:( – 2008-11-07 07:30:26
我最喜欢的部分:用它们来简化编写单元测试。 IEnumerable链也促使我在代码中编写更流畅的接口。
缺点:兰姆达斯和延伸方法是我的锤子,所有问题都是钉子。
总体而言:为我编程时在C#编程中注入了新的活力。
他们通过延迟执行的方式从try catch块中偷取异常存在问题。
例如:
var l = new List<int>() {1, 2, 3};
try
{
l.Select(x => x/0);
}
catch
{
// error
}
l.elementAt(0); // exception occurs here outside of the try catch
这可能会非常棘手你第一次碰到这个问题,尤其是在调试器将指向你在try-catch中的代码。
否则我觉得它们非常有用,非常省时。
我已经使用LINQ主要处理对象的集合。 LINQ在对象集合中运行良好,在大多数情况下消除了谓词函数的需要。
我曾尝试过使用LINQ to SQL,但发现它动力不足,笨拙。特别是我无法让自己使用SQL数据库类设计器。也许它确实给数据库带来了intellisense,但是当你拥有SQL时,谁需要它?
但是让我告诉你,了解更多关于LINQ的知识当然是一个好主意,因为未来的应用程序应该只会增加。
临:
- 的LINQ to SQL允许RAD与数据库非常漂亮
- 它很容易地查询多个数据源
- LINQ to SharePoint,LINQ to Active Directory,LINQ to TFS,LINQ to Umbraco,(和这样的例子不胜枚举)
缺点:
- 任何新技术一样有太多人不理解,但仍然使用它
@乔恩飞碟双向 - 另一个很大的反响,你偷大家的风头:P。我完全同意写一个提供者有多困难,现在我正在处理它!你熟悉Bart De Smet吗?他有很多很好的例子。
- 1. 优点和缺点解释语言
- 2. 优点,缺点和写作使用的语言.NET
- 3. 语言集成查询
- 4. 将hadoop与OBIEE集成的优缺点
- 5. Three20的优点和缺点
- 6. N2CMS的优点和缺点
- 7. smartGWT的缺点和优点
- 8. 用于XML和字符串处理的编程语言的优点和缺点
- 9. Lambda集成与Lambda代理:优缺点
- 10. Axis2优于WCF的优点和缺点
- 11. AUTONOMOUS_TRANSACTION:优点和缺点
- 12. gwt + grail ..优点和缺点
- 13. MDI优点和缺点
- 14. WCF - 优点和缺点
- 15. 优点和缺点mapquest android
- 16. Memcached - 优点和缺点
- 17. 使用SQL查询设计器优点和缺点
- 18. DFC和DFS的优点和缺点?
- 19. Haxe和Kivy的优点和缺点
- 20. Scala + IDEA:sbt和fsc的优点和缺点
- 21. 集成ZK和JBoss Seam而不使用JSF的优点和缺点?
- 22. StyleCop,优点/缺点
- 23. Hibernate 4的优点和缺点?
- 24. 使用ReactJS的优点和缺点
- 25. 天青安全的优点和缺点
- 26. ASNA Visual RPG(AVR)的优点和缺点
- 27. 使用java rmi的优点和缺点
- 28. JUnit - 它的优点和缺点
- 29. Python:_mysql vs MySQLdb的优点和缺点?
- 30. 使用startManagingCursor()的优点和缺点
看起来像一个社区维基问题的好候选 – 2008-11-07 06:42:33