【发布时间】:2011-04-01 11:18:32
【问题描述】:
我有一个带有连接的 SQL 查询。我想使用Linq。有人建议我避免加入并使用 Linq 包含。如何使用 Linq include 组合实体?有没有比加入更好的方法?
谢谢
【问题讨论】:
标签: linq linq-to-sql
我有一个带有连接的 SQL 查询。我想使用Linq。有人建议我避免加入并使用 Linq 包含。如何使用 Linq include 组合实体?有没有比加入更好的方法?
谢谢
【问题讨论】:
标签: linq linq-to-sql
LINQ to SQL 将 LINQ 语法转换为 SQL 查询。如果查询需要连接,那么 LINQ to SQL 将实际执行带有连接数据库的 SQL 查询。您可能获得的优势是 LINQ to SQL 查询可能比您编写的查询更优化。
如果您不熟悉使用 LINQ 并且您有一个工作应用程序,那么您可能不会通过添加额外的抽象层 (LINQ) 来获得复杂性之外的任何东西。话虽如此,LINQ 是一个出色而强大的工具。然而,这并没有改变“如果它没有坏就不要修复它”这句格言的真相。
基本上,您正在考虑将应用程序的数据访问过程从
app -> SQL Query with Joins -> data objects
到
app -> LINQ Query with Joins -> SQL Query with Joins -> data objects
我对这两方面都非常精通,而且我认为编写 LINQ 查询比编写 SQL 查询要容易得多。 (你会得到强类型模型和 Intellisense)。但是,如果您只了解 SQL,那么编写 SQL 查询比学习 LINQ 和编写 LINQ 查询要容易得多。
请注意,LINQ 还支持连接。这是一篇关于在 LINQ 中使用联接的文章:http://odetocode.com/Blogs/scott/archive/2008/03/25/inner-outer-lets-all-join-together-with-linq.aspx。
【讨论】: