NHibernate обновляет неизмененные записи - PullRequest
5 голосов
/ 14 июля 2010

Когда я обновляю (со сбросом) одну запись в списке записей, извлеченных из базы данных, nHibernate управляет версиями всех записей, которые были в исходном списке.

Получение списка записей из базы данных:

using(UnitOfWork.Start())
{
   queuedJobs = aJobServiceManager.GetAllJobs().Where(aJob => aJob.Status == PricingStatus.QUEUED).ToList();
}

/* Do some work on the record*/
using(UnitOfWork.Start())
{
   //aJob is a record from queuedJobs.
   aJobServiceManager.Save(aJob);
   //When Flush is called I'm expecting only aJob to be updated in the database.
   //aJob is correctly updated BUT
   //All the other records in queuedJobs are also updated (their version field is incremented).
   UnitOfWork.Current.Flush();
}

Почему nHibernate обновляет все записи, когда они не изменились, и как вы можете остановить это поведение?

1 Ответ

9 голосов
/ 14 июля 2010

Это наиболее вероятная проблема, с которой вы столкнулись: http://nhibernate.info/blog/2008/10/20/how-test-your-mappings-the-ghostbuster.html

Это поможет увидеть ваш файл сопоставления для работы. Если вы делаете что-то вроде

<property name="Status" type="int" /> 

Где Status на самом деле StatusEnum, вы получите призрак.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...