2009-01-19 57 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類型