2011-09-20 78 views
0

我正在查询帮助。 我有这个经典分类 - >产品 - > OrderDetails < - 订单表格布局。 (虽然没有客户表)不完整的LINQ查询

什么即时丢失是Categories.Name和Products.Name在该OrderItems列表中。你能帮忙吗?

from o in Orders 
join od in OrderDetails on o.Id equals od.OrderId into oi 
      select new { 
         o.Id, 
         o.CustomerName, 
         OrderItems = oi 
      } 

回答

0

首先,你应该在你的数据库中有合适的外键。

如果是这样,你可以简单地引用oi.Product.name和oi.Product.Category.Name

Howver,他们可能不会被加载由于LINQ2SQL和/或您的DataContext懒惰(延迟)加载在你引用它们时已经被处理了。

在这些情况下,您可以使用datacontext上的LoadOptions快速加载产品和类别以及orderitems,并且您都已设置。

+0

oi.Product.Name和oi.Product.Category.Name两个都很棒!谢谢您的帮助! –

+0

linq2sql的美丽。只需简要描述你的sql,确保你不需要大量的单个查询而不是一个大的连接 – Pleun