Pregunta

No sé cómo guardar el objeto con la cláusula where. Lo necesito para evitar guardar objetos con un rango de fechas superpuesto en otros.

public class TaskEvent
{
    public DateTime StartDate {get;set;}
    public DateTime EndDate {get;set;}
}

Quiero verificar la superposición de criterios dentro de la operación de guardar pero no sé cómo.

¿Alguna idea?

¿Fue útil?

Solución

Puede usar HQL para consultas de actualización ad hoc

session.CreateQuery("UPDATE TaskEvent SET ... WHERE ID = :ID and ...")
.SetInt32("ID", ID)
//.SetDateTime("", )
//.SetDateTime("", )
.ExecuteUpdate();

o para hacerlo de una manera más NHibernate ... busque los TaskEvents requeridos (cláusula where), actualice sus propiedades y confirme la transacción.

Otros consejos

Debe averiguar en el código qué objetos deben guardarse y luego guardarlos. Esta es la lógica de negocios y no debe ser empujada a las operaciones de persistencia. OMI, incluso si NH pudiera apoyar eso.

Un enfoque sería volver a determinar qué objetos de TaskEvent no desea guardar en el código y desalojarlos de ISession para que no se persistan.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top