NHibernate - como salvar objeto com onde cláusula
-
19-08-2019 - |
Pergunta
Eu não sei como salvar objeto com onde cláusula. Eu preciso dele para evitar salvando objeto com intervalo de datas que se sobrepõem sobre os outros.
public class TaskEvent
{
public DateTime StartDate {get;set;}
public DateTime EndDate {get;set;}
}
Eu quero verificar sobrepostos em critérios dentro salvar operação, mas eu não sei como.
Todas as idéias?
Solução
Você pode usar HQL para consultas de atualização ad hoc
session.CreateQuery("UPDATE TaskEvent SET ... WHERE ID = :ID and ...")
.SetInt32("ID", ID)
//.SetDateTime("", )
//.SetDateTime("", )
.ExecuteUpdate();
ou fazer de uma forma mais NHibernate tipo de caminho ... buscar os TaskEvents necessários (onde cláusula), atualizar suas propriedades, e confirmar a transação.
Outras dicas
Você precisa descobrir em código que os objetos poupança necessidade, em seguida, salvar aqueles. Esta é a lógica do negócio e não deve ser empurrado para operações de persistência. IMO, mesmo se NH poderia suportar isso.
Uma abordagem seria retermine que TaskEvent objetos que você não deseja salvar no código e expulsá-los do ISession para que eles não serão persistentes.