Esto debe ser una pregunta simple. Dado un criterio, ¿cómo se eliminan las entidades que satisfacen los criterios?¿Cómo se pueden eliminar objetos NHibernate utilizando un criterio?
La razón de ser:
HQL y criterios NH son NHibernate construcciones específicas y como tales son de servidor DAL lado detalles de implementación. No quiero que se "filtren" al lado del cliente. Por lo tanto, nuestro lado del cliente proporciona expresiones LINQ para que el servidor las procese. Hasta ahora, las solicitudes en las que se seleccionaban solicitudes y LINQ a NHibernate trataban muy bien.
Sin embargo, ahora es necesario implementar la operación de eliminación por lotes. Como es habitual, el lado del cliente proporciona una expresión LINQ y el servidor elimina entidades que satisfacen la expresión. Desafortunadamente, LINQ to NHibernate no es de ayuda aquí. Lo máximo que puede hacer es traducir la expresión LINQ dada a los criterios NHibernate.
De todos modos, esta es la historia. Deseo enfatizar que el lado del cliente no tiene conocimiento de NHibernate y me gusta que siga así.
P.S.
estoy usando NH 2.1
No me gusta este método, sin embargo, cuando se trabaja con un gran número de objetos, ya que primero es necesario recuperar todas las entidades de la base de datos para poder eliminarlas. –
Esto es cierto, ¿no tienes que usar HQL para emitir una instrucción SQL 'DELETE FROM WHERE'? – DanB
Chicos, no habla en serio. ¡Debe haber una mejor manera! – mark