Я выполняю стандартное обновление в NHibernate до одного свойства. Однако при фиксации транзакции обновление sql, по-видимому, устанавливает все поля, которые я отобразил на таблице, хотя они не изменились. Неужели это не может быть нормальным поведением в Нюбернате? Я делаю что-то неправильно? ThanksОбновление NHibernate для одного свойства обновляет все свойства в sql
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();
}
}
только что столкнулся с той же ситуацией. Я думаю, что это плохой дефолт, и я буду искать онлайн-дискуссии на соответствующих форумах. это вызвало ошибки в серверном приложении, над которым я работаю, - поскольку он изменяет логику приложения, как правило, в случаях одновременных действий, когда объект создается, затем извлекается, извлекается другим потоком/процессом (другой сеанс), модифицируется и обновляется (обновление отдельных не связанных полей). последнее обновление будет работать над изменениями в предыдущей транзакции ... Я консультировался с этим со своими коллегами, и мы считаем, что прирост производительности не является резким. –
@ YonatanKarni, это не только о производительности, но и о согласованности. См. Этот вопрос [/ q/13954882/1178314) и его [принятый в настоящее время ответ] (/ a/13955305/1178314). –