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?

Foi útil?

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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top