你如何在Linq中实现多个内连接

时间:2009-09-18 07:07:01

标签: sql-server linq linq-to-entities

我已经搜索过SO而无法为此找到可行的解决方案。我只想弄清楚Linq to Entities中多个内连接的语法是什么。感谢

2 个答案:

答案 0 :(得分:9)

Jon的答案可行,但恕我直言using join in LINQ to Entities is usually wrong,因为它复制了模型中的代码。我可以在L2E中以更简单的方式重写Jon的查询:

var query = from customer in db.Customers
            from order in customer.Orders
            from product in order.Products
            from info in product.Info
            select new
            {
                customer.Name, 
                info.BriefDescription
            }

大约50%的输入和0%的重复代码。请考虑您的关系已在数据库和模型中定义。您是否真的想在您编写的每个查询中再次复制它们,并在重构模型时中断查询?

答案 1 :(得分:7)

好吧,我不太了解LINQ to Entities,但正常的LINQ语法是:

var query = from customer in db.Customers
            join order in db.Orders on customer.ID equals order.ID
            join product in db.Products on order.ProductID equals product.ID
            join info in db.Info on product.InfoID equals info.ID
            select new { customer.Name, info.BriefDescription };

(即只有几个join条款)。

现在我怀疑你已经尝试过了 - 如果是的话,出了什么问题?