Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vb.net 实体框架:懒散加载似乎是关闭的,尽管它显式地打开了?_Vb.net_Entity Framework 6 - Fatal编程技术网

Vb.net 实体框架:懒散加载似乎是关闭的,尽管它显式地打开了?

Vb.net 实体框架:懒散加载似乎是关闭的,尽管它显式地打开了?,vb.net,entity-framework-6,Vb.net,Entity Framework 6,看起来,我的模型第一个EF设置并不是延迟加载相关的表记录,尽管显式地打开了它(我知道我不应该这样做,因为它是模型第一) 代码如下: Using db As New Entity() db.Configuration.LazyLoadingEnabled = True Dim objectList as List(Of tableName) = _ db.tableName.Include("relatedTableName") _ .Where

看起来,我的模型第一个EF设置并不是延迟加载相关的表记录,尽管显式地打开了它(我知道我不应该这样做,因为它是模型第一)

代码如下:

Using db As New Entity()

    db.Configuration.LazyLoadingEnabled = True

    Dim objectList as List(Of tableName) = _
        db.tableName.Include("relatedTableName") _
        .Where(Function(x) x.col1 = someValue) _
        .OrderBy(Function(x) x.col2).ThenBy(Function(x) x.col3).ToList()

    int testVal = 0

    For Each item As tableName In objectList
        testValue = item.relatedTableName.idColumn
    Next
End Using
我得到一个
System.NullReferenceException:对象引用未设置为对象的实例。
此行出错:

testValue = item.relatedTableName.idColumn
实际上,
item.relatedTableName
也没有值。我已经验证了我应该通过在SQL中编写一个内部连接语句来获取记录


这是怎么回事?

显然,如果您使用了错误的导航属性,那么当两个表之间有多个外键时,从一个可空字段到相关表的导航属性就会这样做


也就是说,需要根据需要的数据使用导航属性
relatedTableName
relatedtableName1
。如果第一个指向一个可空的街道地址列,第二个指向一个不可空的邮政编码列,请指向右边的一个,并期待一个可能的空对象和空列。

Include
不是懒惰的,而是急切的加载。这与延迟加载的开/关无关。我知道这是问题发生时代码的当前状态,不会关闭延迟加载,也不会有任何帮助或影响。