Эта проблема из-за значения свойства LazyLoadingEnabled
.
На первый взгляд, LazyLoadingEnabled
= false, по-видимому, означает, что EF будет загружать объектные отношения при загрузке объекта, конечно, с некоторыми ограничениями, чтобы EF не загружал всю базу данных. На самом деле, это означает, что отношения никогда не будут загружены неявно. То есть: из direction N->1
возвращенное EntityReference(T)
будет иметь правильное EntityKey
, но IsLoaded
будет ложным, а Value
будет нулевым. С другой стороны, в direction 1->N
коллекция будет пустой, IsLoaded
будет ложным. EntityReference
или EntityCollection
могут быть явно загружены с использованием метода Load
.
LazyLoadingEnabled
= true, с другой стороны, означает, что это, кажется, означает. Ассоциации будут загружаться по мере необходимости.
По умолчанию установлено значение false, что, кстати, вызвало всю эту путаницу, через которую я прошел.
Чтобы избежать путаницы, возможно, должно существовать свойство с именем LoadingMode
, которое будет перечислением со значимыми значениями. Как: None
, Lazy
, Eager