En otras palabras, si recupero entidades, deshago de mi ObjectContext, ¿tengo que desconectar explícitamente todas mis entidades?Si desecho mi ObjectContext, ¿están mis entidades separadas?
Respuesta
Sus entidades se desprenden una vez que se elimina el contexto. Véase el siguiente mensaje:
No, no tiene que llamar a separar en sus entidades. Sin embargo, si haces algo como:
var people = Context.Person.Where(p => p.FirstName == "John");
y después de deshacerse de su contexto, la gente va a lanzar una excepción, ya que el IEnumerable ha aplazado la ejecución. Haciendo esto:
var people = Context.Person.Where(p => p.FirstName == "John").ToList();
le permitirá seguir utilizando su lista de personas.
Además,
var john = Context.Person.FirstOrDefault(p => p.Id == 342);
va a funcionar después de contexto está dispuesta, porque has cogió una entidad específica y no una enumeración.
Quizás depende del significado de Detach
. La entidad adjunta significa que el contexto conoce la entidad y rastrea sus cambios. Si descarta el contexto, ya no puede rastrear los cambios y la entidad es como desapegada. Lo similar tiene un significado real aquí.
Si está utilizando proxies dinámicos (POCO - seguimiento dinámico de cambios o carga diferida), el proxy en sí mantiene una referencia interna hacia atrás del contexto, pero no reacciona ante la eliminación del contexto. Todavía conserva la referencia (por cierto, esto puede ser fuente de algunas pérdidas de memoria desagradables). Esto causa un problema en dos situaciones:
- Cuando intenta adjuntar a dicha entidad a otro contexto que arrojará alguna excepción a esa entidad se puede seguir solamente por el contexto individual (a pesar de que contexto original ya está muerto).
- Cuando intente acceder a la propiedad de navegación que no estaba ansiosamente cargada obtendrá
ObjectDisposedException
porque el proxy activará la carga diferida en el contexto eliminado.
La única manera de evitar esto es deshabilitar los proxies dinámicos o separar manualmente la entidad antes de eliminar el contexto. Esto tiene otra desventaja: la separación de la entidad rompe las relaciones.
- 1. Cómo guardar entidades separadas (nuevas + modificadas) separadas en Entity Framework?
- 2. XDocument.Save() elimina mis entidades
- 3. Desecho Controles de usuario WPF
- 4. ¿Puedo abstraer Entity Framework de mis Entidades?
- 5. ¿Dónde están escondidos mis recursos?
- 6. Dónde están almacenados mis archivos de proyecto
- 7. ¿Cómo mi pom encuentra mi pom padre si los repositorios están configurados en el pom padre?
- 8. XCode - Pero ... ¿Dónde están mis archivos?
- 9. ¿Dónde están mis gemas de rubí?
- 10. ¿Mis controles no están siendo eliminados correctamente?
- 11. Herencia JavaScript: ¿Cuándo están mis miembros derivados?
- 12. ¿Están justificados mis problemas con SSIS?
- 13. ¿Dónde están mis $ _FILES? Carga de Ajax
- 14. ¿Por qué mis pruebas funcionales están fallando?
- 15. ObjectContext ConnectionString SQLite
- 16. Crear interfaz para ObjectContext
- 17. Symfony2/Doctrine2: Generar entidades que están fuera de un paquete
- 18. Uso de ObjectContext y DbContext
- 19. ¿Cómo usar mis Entidades y Administradores de Entidades en el Comando de Consola Symfony 2?
- 20. cómo usar el paquete de medios sonata con mis entidades
- 21. ¿Por qué la inserción de entidades en EF 4.1 es tan lenta en comparación con ObjectContext?
- 22. ¿Por qué mis conexiones no están cerradas incluso si elimino explícitamente el DataContext?
- 23. ¿Debo usar las funciones listas para DOM si mis scripts están al final del cuerpo?
- 24. ¿Cómo verifico si todas las dependencias de mis gemas de Ruby instaladas están satisfechas?
- 25. Hibernate: ¿cómo recupero mis entidades desde un ScrollableResults?
- 26. Json.Net caracteres inesperados ("\") al serializar mis entidades (Entity framework)
- 27. ¿Dónde están mis archivos de base de datos H2?
- 28. Mis aplicaciones no están visibles cuando utilizo AdminSite personalizado
- 29. ¿Por qué mis unidades están "compiladas con una versión diferente" de mis propios archivos?
- 30. La cascada de JPA persiste y las referencias a entidades separadas arrojan PersistentObjectException. ¿Por qué?
http://stackoverflow.com/questions/2244843/entity-framework-detaching-entities-when-objectcontext-disposed sugiere que es necesario desconectar? ¿No es correcto? – glosrob