¿Hay alguna manera de hacer que nhibernate devuelva mi clase en lugar de su clase de proxy? No me importa si no es flojo o no se puede actualizar.Nhibernate: Obtener clase de entidad real en lugar de clase proxy
Respuesta
Puede unproxy clase con este código
session.PersistenceContext.Unproxy(proxiedInstance)
¿Hay alguna manera de desprocesar todas las asociaciones también? Desproviza mi objeto principal pero sus relaciones con otros objetos se mantienen proxy. – ryudice
Estoy usando AutoMapper para lograr algo similar en Entity Framework.
var nonProxiedInstance = Mapper.DynamicMap<YourType>(proxiedInstance);
Eso funcionaría si no tiene propiedades de navegación. De lo contrario, deberá configurar una asignación para ignorar esas propiedades.
Nota: Esta es (obviamente) una solución ineficiente.
Esto no funciona. El proxy no contiene las propiedades de la clase heredada (real), por lo que también faltaría en el tipo mapeado. –
Debe definir esto en su asignación, mediante la definición de lazy = "false"
<class name="MyEntity" table="MyTable" lazy="false">
</class>
Puede utilizar la técnica descrita en http://sessionfactory.blogspot.com/2010/08/hacking-lazy-loaded-inheritance.html (se Tendrás que hacerlo recursivamente)
Puedes usar el siguiente código para obtener el objeto real
InstanceType instance;
if (proxiedInstance is INHibernateProxy)
{
var lazyInitialiser = ((INHibernateProxy)proxiedInstance).HibernateLazyInitializer;
instance = (InstanceType)lazyInitialiser.GetImplementation();
}
- 1. Doctrina 2 Obtener el nombre de clase real de la clase proxy
- 2. ¿Es posible que nhibernate devuelva una consulta como IDictionary en lugar de una clase de entidad?
- 3. C# Clone System.Data.Entity.DynamicProxies a la clase real (sin proxy)?
- 4. NHibernate Obtener objetos sin proxy
- 5. Obtener ruta real de un archivo en una clase Java
- 6. clase proxy automático
- 7. Obtener nombre de la entidad de la clase Object
- 8. ruby convertir nombre de clase en cadena a clase real
- 9. EntityNotFoundException en la clase proxy proxy doctrina 2
- 10. Log4j y AOP, cómo obtener el nombre de clase real
- 11. Obtenga una clase "real" de tipo genérico
- 12. Transmitiendo un objeto Proxy de Spring a la clase de tiempo de ejecución real
- 13. Advertencia de proxy de estrechamiento de NHibernate
- 14. ¿Es aceptable utilizar una clase de utilidad "real" en lugar de burlarse en TDD?
- 15. Proxy Con clase URLConnection de Java
- 16. Cómo falsificar/proxy una clase en Python
- 17. Doctrina: extendiendo la clase de entidad
- 18. [Hibernate] Error: clase de entidad no encontrada:
- 19. Tipo anónimo a refactorización de clase real
- 20. ¿Cómo obtengo el tipo de entidad en un objeto que puede ser un objeto proxy de NHibernate?
- 21. jQuery - Añadir ID en lugar de clase
- 22. nhibernate y propiedades de clase virtual?
- 23. ¿Cuáles son los beneficios de usar una clase parcial en lugar de una clase abstracta?
- 24. Entidad Proxy Marco
- 25. Generación de clase de proxy de Java en Eclipse
- 26. nombre de la tabla de clase de entidad
- 27. Acceso al parámetro global Symfony2 en la clase de entidad
- 28. clase de proxy del servicio web de depuración en C#
- 29. dos tipos de clase mismos en cuestión de clase marco de la entidad
- 30. Obtener nombres de tablas de Fluent Nhibernate
duplicado - ver http://stackoverflow.com/questions/1867998/nhibernate-get-objects-without-proxy – mookid8000