我正在使用Linq to Sql並在基礎表中設置正確的外鍵關係。Linq to Sql導航對象實例屬性爲空或默認
但是,當我嘗試使用導航屬性時,我有一個微妙的錯誤。
在下面的代碼示例中,當我將手錶放在PartDetails上時,我確實得到了完全填充的部分。但是,如果我調用每個部分的屬性來檢查其值,則該實例現在爲空。
在過去的幾個小時裏,我一直在尋找一個答案,但到目前爲止乾燥。
任何人都可以告訴我爲什麼會發生這種情況嗎?
我在.NET 4.6.1時,Visual Studio 2015年和SQL Server 2014
我承認我無法找到正確的地方,關火DataLoadOptions但這似乎正常工作!
Partial Public Class LabourDetail
Private Sub OnCreated()
Dim db As New DataContext
Dim ds As DataLoadOptions = New DataLoadOptions()
ds.LoadWith(Function(c As LabourDetail) c.PartDetails)
db.LoadOptions = ds
End Sub
Public ReadOnly Property AnyPartsUnConsumed As Boolean
Get
'If I put a watch on the partdetails I do get a proper collection with proper instances.
Return PartDetails.Where(Function(p) p.PartsUnConsumed).Any
End Get
End Property
End Class
Partial Public Class PartDetail
'When we reach this point, the values in the instance are all Null/Default
Public Property PartsUnConsumed() As Boolean = _CheckPartsUnConsumed()
End Class
我很感激任何幫助!
這個'OnCreated'方法的預期目的是什麼?不管它是什麼,目前它什麼都不做。你創建一個'db'實例,當方法結束時被垃圾回收。 –
@gert阿諾德 - 啊謝謝你 - DOH!那麼這將是一個雙面facepalm嗎?你會把這個作爲答案,因爲你指出什麼應該是顯而易見的是答案,需要一個upvote。 –