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 esta EntityReference<TEntity> con la opción de fusión mediante 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 de EntityReference<TEntity> es null
.
o bien
Una consulta ha devuelto más de un extremo relacionado.
o bien
Una consulta ha devuelto cero extremos relacionados, pero se esperaba uno.
Comentarios
Este método se usa para cargar el objeto relacionado.
Cuando se carga el objeto relacionado, se tiene acceso a él desde la propiedad Value.
Para cargar explícitamente objetos relacionados, debe llamar al Load
método en el extremo relacionado devuelto por la propiedad de navegación. En una relación de uno a varios, llame al método Load en EntityCollection<TEntity>, y para una relación uno a uno, llame al método Load en EntityReference<TEntity>. Esto carga los datos de objetos 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 en los resultados.
El Load método carga objetos relacionados desde el origen de datos, independientemente de si es true
o no IsLoaded .
Nota
Cuando se llama al método Load durante una enumeración foreach
(C#) o For Each
(Visual Basic), Servicios de objeto intenta abrir un nuevo lector de datos. Si no ha especificado multipleactiveresultsets=true
en la cadena de conexión para habilitar varios conjuntos de resultados activos, se producirá un error durante esta operación. También puede cargar el resultado de la consulta en una colección List<T>. Esto cierra el lector de datos y permite llevar a cabo la enumeración en la colección para cargar los 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 otro , Loadpuede ser cualquier cosa , pero NoTracking (por ejemplo, la entidad podría haberse cargado con OverwriteChanges y la Load opción puede ser AppendOnly).MergeOptionMergeOption
- Si
mergeOption
es NoTracking, Load no se llama a en una entidad ya cargada y Load no se llama a en un no vacío y no se realiza RelatedEndun seguimiento de .
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.
Se aplica a
Consulte también
Comentarios
https://aka.ms/ContentUserFeedback.
Próximamente: A lo largo de 2024 iremos eliminando gradualmente GitHub Issues como mecanismo de comentarios sobre el contenido y lo sustituiremos por un nuevo sistema de comentarios. Para más información, vea:Enviar y ver comentarios de