我正在使用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。 –