我已经搜索过SO而无法为此找到可行的解决方案。我只想弄清楚Linq to Entities中多个内连接的语法是什么。感谢
答案 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
条款)。
现在我怀疑你已经尝试过了 - 如果是的话,出了什么问题?