NHibernate muitos-para-um mapeamento de atualizar a tabela inalterada
-
05-07-2019 - |
Pergunta
Eu tenho uma situação onde eu tenho duas entidades que compartilham uma chave primária (Transaction e TransactionDetail). Eu tê-los mapeada usando muitos-para-um relacionamento de Transação para TransactionDetail e de TransactionDetail de Transação. detalhe da transação contém um registro para cada transação.
No entanto, quando eu criar um novo objeto detalhe da transação e adicioná-lo à transação, NHibernate tenta atualizar a tabela de Transação com uma consulta como 'update transação set id =? onde id =? com o mesmo valor para cada parâmetro.
Uma vez que o mapeamento está na coluna de chave primária, eu não quero que a transação seja atualizado. Na verdade, uma vez que a chave primária é uma coluna de identidade, eu recebo um erro ao tentar atualizar o valor. Como posso evitar que NHibernate de atualizar a tabela de transação quando um novo registro TransactionDetail é criado?
Solução
Você pode querer olhar para os one-to-one
ou join-table
tipos de mapeamentos. meios many-to-one
algo específico, e parece que o seu caso poderia caber melhor o perfil de um dos outros dois tipos de mapeamentos.