EntityReference<TEntity>.Load(MergeOption) 方法

定义

使用指定的合并选项加载此 EntityReference<TEntity> 的相关对象。

public:
 override void Load(System::Data::Objects::MergeOption mergeOption);
public override void Load (System.Data.Objects.MergeOption mergeOption);
override this.Load : System.Data.Objects.MergeOption -> unit
Public Overrides Sub Load (mergeOption As MergeOption)

参数

mergeOption
MergeOption

指定对象在 ObjectContext中已存在时应如何返回。

例外

EntityReference<TEntity> 的来源是 null

-或-

查询返回了多个相关结束。

-或-

查询返回零个相关结束,预期有一个相关结束。

注解

此方法用于加载相关对象。

加载后,将从 Value 属性访问相关对象。

若要显式加载相关对象,必须在导航属性返回的相关端调用 Load 方法。 对于一对多关系,请对 EntityCollection<TEntity>调用 Load 方法,对一对一关系调用 EntityReference<TEntity>Load。 这会将相关对象数据加载到对象上下文中。 当查询返回结果时,可以使用 foreach 循环(Visual Basic 中的For Each...Next)枚举对象集合,并有条件地对结果中每个实体的 EntityReference<TEntity>EntityCollection<TEntity> 属性调用 Load 方法。

无论 IsLoaded 是否 trueLoad 方法都从数据源加载相关对象。

注意

foreach(C#)或 For Each(Visual Basic)枚举期间调用 Load 方法时,Object Services 会尝试打开新的数据读取器。 除非已在连接字符串中指定 multipleactiveresultsets=true 来启用多个活动结果集,否则此操作将失败。 还可以将查询的结果加载到 List<T> 集合中。 这会关闭数据读取器,并使你能够枚举集合以加载引用的对象。

此方法在加载相关对象之前调用内部 RelatedEnd.ValidateLoad 方法,该方法验证对 Load 的调用是否具有正确的条件。 RelatedEnd.ValidateLoad 方法检查:

当相关对象已在 ObjectContext中加载时,Load 方法将强制 mergeOption 参数指定的 MergeOption。 有关详细信息,请参阅 标识解析、状态管理和更改跟踪

适用于

另请参阅