A Atualização do Nibernate sobre a propriedade única atualiza todas as propriedades no SQL

StackOverflow https://stackoverflow.com/questions/813240

  •  03-07-2019
  •  | 
  •  

Pergunta

Estou realizando uma atualização padrão no Nibernate para uma única propriedade. No entanto, ao comprometer a transação, a atualização do SQL parece definir todos os campos que eu mapeei na tabela, mesmo que eles não tenham alterado. Certamente isso não pode ser um comportamento normal no Nibernate? Estou fazendo algo errado? Obrigado

using (var session = sessionFactory.OpenSession())
           {
               using (var transaction = session.BeginTransaction())
               {
                   var singleMeeting = session.Load<Meeting>(10193);
                   singleMeeting.Subject = "This is a test 2";

                   transaction.Commit();
               }
           }
Foi útil?

Solução

Este é o comportamento normal. Você pode tentar adicionar dynamic-update="true" à sua definição de classe para substituir esse comportamento.

Outras dicas

Nós iremos. Sim, esse é um comportamento normal para o Nibernate. Você pode usar o atributo gerado para suas propriedades para alterar o comportamento. Detalhes sobre Blog de Ayende.

Por que esse padrão é porque, com a dinâmica, você não recebe seu plano de consulta em cache. E geralmente você não se importa que envie mais alguns bytes sobre a conexão de rede de alta velocidade entre o servidor de aplicativos e o banco de dados. A menos que você esteja economizando seqüências longas onde essa configuração é perfeitamente apropriada.

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