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 este 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 el ObjectContext.
Excepciones
El origen del 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 propiedad Value.
Para cargar explícitamente objetos relacionados, debe llamar al método Load
en el extremo relacionado devuelto por la propiedad de navegación. Para una relación uno a varios, llame al método Load en EntityCollection<TEntity>y para una relación uno a uno, llame al 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 bucle foreach
(For Each...Next
en Visual Basic) y llamar condicionalmente al método Load
en las propiedades EntityReference<TEntity> y EntityCollection<TEntity> para cada entidad de los resultados.
El método Load carga objetos relacionados desde el origen de datos tanto si IsLoaded como si true
.
Nota
Cuando se llama al método Load durante una enumeración de foreach
(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 colección List<T>. 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 RelatedEnd.ValidateLoad
interno antes de cargar el objeto relacionado, que valida que una llamada a Load tenga las condiciones correctas. El método RelatedEnd.ValidateLoad
comprueba que:
- Existe un ObjectContext válido.
- La entidad no está en un estado de Deleted.
- MergeOption para Load debe ser NoTracking si y solo si la entidad de origen se NoTracking. Si la entidad de origen se recuperó con cualquier otro MergeOption, el LoadMergeOption puede ser cualquier cosa, pero NoTracking (por ejemplo, la entidad podría haberse cargado con OverwriteChanges y la opción Load puede ser AppendOnly).
- Si
mergeOption
es NoTracking, no se llama a Load en una entidad ya cargada y no se llama a Load en un RelatedEndno vacío y sin seguimiento .
Cuando el objeto relacionado ya está cargado en el ObjectContext, el método Load aplica el MergeOption especificado por el parámetro mergeOption
. Para obtener más información, consulte resolución de identidades, administración de estado y seguimiento de cambios.