EntityReference<TEntity>.Load(MergeOption) 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
使用指定的合并选项加载此 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时应如何返回 。
例外
注解
此方法用于加载相关对象。
加载后,将从 Value 属性访问相关对象。
若要显式加载相关对象,必须在导航属性返回的相关端调用 Load 该方法。 对于一对多关系,请调用方法,对于一对一关系,请调用该方法EntityReference<TEntity>Load。LoadEntityCollection<TEntity> 这会将相关对象数据加载到对象上下文中。 当查询返回结果时,可以使用循环(For Each...Next在 Visual Basic 中)枚举对象foreach集合,并有条件地调用Load结果中每个实体的方法EntityReference<TEntity>和EntityCollection<TEntity>属性。
该方法 Load 从数据源加载相关对象(无论是否 IsLoaded 为 true)。
注意
在 (C#) 或 For Each (Visual Basic) 枚举期间foreach调用Load该方法时,Object Services 会尝试打开新的数据读取器。 除非已在连接字符串中指定 multipleactiveresultsets=true 启用了多个活动结果集,否则此操作将失败。 还可以将查询结果加载到 List<T> 集合中。 这会关闭数据读取器,并使你能够枚举集合以加载引用的对象。
此方法在加载相关对象之前调用内部 RelatedEnd.ValidateLoad 方法,该对象验证调用 Load 是否具有正确的条件。 该方法 RelatedEnd.ValidateLoad 检查是否:
- 有效 ObjectContext 存在。
- 实体未处于 Deleted 状态。
- MergeOption for Load 必须是 NoTracking 当且仅当源实体为 NoTracking时。 如果源实体是随任何其他 MergeOption实体一起检索的, LoadMergeOption 则可以是任何其他 NoTracking 实体(例如,该实体可能已加载 OverwriteChanges , Load 并且选项可以是 AppendOnly)。
- 如果是
mergeOption,Load则不会对已加载的实体Load调用,也不会在非空的未跟踪RelatedEnd中调用。NoTracking
当相关对象已加载到中 ObjectContext时,该方法 Load 将强制执行 MergeOption 参数 mergeOption 指定的对象。 有关详细信息,请参阅 标识解析、状态管理和更改跟踪。