LINQ无疑简化了数据库编程,但是它有缺点吗?内联SQL要求人们以某种方式与数据库进行通信,从而可以打开数据库进行注入。内联SQL还必须经过语法检查,建立计划然后执行,这需要花费宝贵的时间。在出色的数据库应用程序编程中,存储过程也已成为坚如磐石的标准。我认识的许多程序员都使用简化开发的数据层,但是,LINQ并没有达到这个程度。是时候放弃SP并使用LINQ了吗?
LINQ to SQL实际上在数据库中提出了一些令人震惊的性能问题。基本上,它根据您使用的参数的长度创建多个执行计划。我前不久在我的博客LINQ to SQL上发布了有关它的信息,这可能会导致性能问题。
现在,是说LINQ没有位置吗?几乎不。就像存储过程一样,LINQ在开发工具包中肯定占有一席之地。最终,您需要在绝对需要性能的情况下使用存储过程,并在任何其他情况下使用ORM工具。
就内联SQL而言,存在执行内联SQL的方法,因此该计划仅构建一次,并且永远不会重新编译。大多数ORM也应注意性能调整的这一方面,并且使用这些方法通常是执行SQL的最安全方法,因为它会迫使您使用参数化查询。
像大多数数据库解决方案一样,正确的答案取决于您要解决的问题。如果您希望开发速度胜于数据库/应用程序性能,那么最好使用LINQ或其他DAL / ORM工具。如果您倾向于性能而不是易于开发,那么使用存储过程和纯数据集将是您的最佳选择。LLBLGen甚至提供了LINQ到LLBLGen层,因此您可以使用LINQ来查询LLBLGen的对象,并让LLBLGen实际处理构建查询并避免LINQ的崩溃。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。