2009-01-19 61 views
5

有没有办法使用LoadWith但指定返回的字段?LINQ to sql LoadWith返回限制字段

举例来说,如果我有两个表1)产品2)分类

,并完成类似

DataLoadOptions dlo = new DataLoadOptions(); 
dlo.LoadWith<Products>(d => d.Categories); 
db.LoadOptions = dlo; 

MyDataContext db = new MyDataContext(); 
var result = from d in db.Products 
      select d; 

当我检查该查询分析器我看到所有从分类表中的行正在退回。我真正需要的是“名称”字段。

我知道我可以使用连接重写查询,但我需要返回结果集作为“产品”数据类型,这就是为什么我使用LoadWith。

回答

1

没有这与LoadWith不可能。

您可以尝试在投影中使用嵌套查询,但这样做会很慢:每个父级查询1次(因此每个产品加载1个相关类别查询)。

0

您可以使用投影,但你需要一个

select new {Order = order, ProductName = order.Product.Name, 
      CustomerName = order.Customer.Name, 
      OrderType = order.OrderType.Name } // etc 
后处理anynomus类型