當你的子記錄通過lambda查詢加載時,有沒有人有過使用LINQ to SQL加載關聯的問題?例如:從lambda查詢結果訪問關聯的問題
var orderLine = db.OrderLines.
Where(ol => ol.ID == orderLineID select ol).
First();
// navigate to order via the association
var order = orderLine.GetOrder();
我得到的基本上是GetOrder()的空結果。
但如果我這樣做,而不是:
var orderLine = (from ol in db.OrderLines where ol.ID == orderLineID).First();
var order = orderLine.GetOrder();
工作正常。
這是什麼原因造成的?這是一個錯誤?
編輯:這裏是與註釋掉Lambda表達式WORKS的實際代碼不起作用
var msg = db.Messages.Where(m => m.ID == msgID).First(); if (msg.SentTS.HasValue) return; // Get the message recipients // I don't get it.. why doesn't lambda expressions work here? returns 0 results! // var testtos = msg.GetMessageTos.Where(mt => mt.Active); var tos = from mt in db.MessagesTos where mt.Active && mt.MessageID == msgID select mt;
請參閱我的編輯與實際代碼不起作用(註釋掉)。謝謝! – 2010-08-24 17:28:38
「msg.GetMessageTos」和「db.MessageTos」的返回類型是什麼?另外什麼類型是'msg'和'db'?這是否工作:'var tos = db.MessagesTos.Where(mt => mt.Active && mt.MessageID == msgID).First();' – 2010-08-24 17:43:35
您是否正在循環中執行此操作?如果是這樣,那麼msgID是如何設置的?您可能會遇到訪問關閉問題。 – 2010-08-24 17:44:27