EntityReference<TEntity>.Load(MergeOption) Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Carga el objeto relacionado para esto EntityReference<TEntity> con la opción de combinación especificada.
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)
Parámetros
- mergeOption
- MergeOption
Especifica cómo se debe devolver el objeto si ya existe en .ObjectContext
Excepciones
El origen de EntityReference<TEntity> es null.
-o-
Una consulta devolvió más de un extremo relacionado.
-o-
Una consulta devolvió cero extremos relacionados y se esperaba un extremo relacionado.
Comentarios
Este método se usa para cargar el objeto relacionado.
Cuando se carga, se obtiene acceso al objeto relacionado desde la Value propiedad .
Para cargar explícitamente objetos relacionados, debe llamar al Load método en el extremo relacionado devuelto por la propiedad de navegación. Para una relación uno a varios, llame al Load método en EntityCollection<TEntity>y para una relación uno a uno, llame a Load en EntityReference<TEntity>. Esto carga los datos del objeto relacionados en el contexto del objeto. Cuando una consulta devuelve resultados, puede enumerar a través de la colección de objetos mediante un foreach bucle (For Each...Next en Visual Basic) y llamar condicionalmente al Load método en EntityReference<TEntity> y EntityCollection<TEntity> propiedades para cada entidad de los resultados.
El Load método carga objetos relacionados desde el origen de datos si es trueo no IsLoaded .
Nota
Cuando se llama al Load método durante una foreach enumeración (C#) o For Each (Visual Basic), Object Services intenta abrir un nuevo lector de datos. Esta operación producirá un error a menos que haya habilitado varios conjuntos de resultados activos especificando multipleactiveresultsets=true en la cadena de conexión. También puede cargar el resultado de la consulta en una List<T> colección. Esto cierra el lector de datos y permite enumerar sobre la colección para cargar objetos a los que se hace referencia.
Este método llama al método interno RelatedEnd.ValidateLoad antes de cargar el objeto relacionado, que valida que una llamada a Load tiene las condiciones correctas. El RelatedEnd.ValidateLoad método comprueba que:
- Existe un valor válido ObjectContext .
- La entidad no está en un Deleted estado.
- MergeOption para Load debe ser NoTracking si y solo si la entidad de origen era NoTracking. Si la entidad de origen se recuperó con cualquier otra , LoadMergeOption puede ser cualquier cosaMergeOption, pero NoTracking (por ejemplo, la entidad podría haberse cargado con OverwriteChanges y la Load opción puede ser AppendOnly).
- Si
mergeOptiones NoTracking, Load no se llama a en una entidad ya cargada y Load no se llama a en un no vacío, sin seguimiento RelatedEnd.
Cuando el objeto relacionado ya está cargado en ObjectContext, el Load método aplica el MergeOption especificado por el mergeOption parámetro . Para obtener más información, consulte Resolución de identidades, Administración de estado y Seguimiento de cambios.