Ленивая загрузка замком NHibernate Facility

Единственным путем я знаю о выполнении разработки в Linux для iPhone, должен был бы установить VMware и работать над получением OS X, работающего в виртуальной машине. После этих слов существуют некоторые "легальные" проблемы в выполнении этого. Сообщается, что Сервер OS X может быть виртуализирован, но до истории разработки на этом я не знаю.

, Если бы Вы действительно серьезны, это, что я исследовал бы.

Удача.

5
задан Bronumski 6 July 2012 в 15:09
поделиться

2 ответа

Да, всегда удаляйте ISession . См. документацию по использованию ISessionManager .

Для транзакций рассмотрите возможность использования Automatic Transaction Facility .

SessionManager поддерживает ATM , поэтому он удалит ISession , когда это необходимо, с учетом транзакций, даже если вы явно удалили ISession .

Вот быстрый и грязный пример приложение , использующее ASP.NET MVC + Castle Automatic Transaction Facility + NHibernate

6
ответ дан 14 December 2019 в 13:44
поделиться

Мы используем транзакции с операторами using для обработки утилизации.

public void Save<K>(K entity)
        {

            if (entity == null)
                throw new ArgumentNullException("item", "The item being saved cannot be null.");

            using (ISession session = GetSession())
            {
                using (ITransaction tx = session.BeginTransaction())
                {
                    session.SaveOrUpdate(entity);
                    tx.Commit();
                }
            }
        }

Я все равно получу ошибку ленивой загрузки, если я обращаюсь к объектам после внесения изменений в то же действие . Я исправил ошибку, не получая доступа к объектам после сохранения. Вот объяснение: NHibernate.LazyInitializationException

Я считаю, что это связано с неправильным сохранением иерархии. Я не тестировал его, но, возможно, сохранение родительских объектов, если вы хотите получить к ним доступ, решит проблему. Простое помещение информации, к которой я должен был получить доступ после сохранения, в локальные переменные перед сохранением, казалось, решило мою проблему.

Я исправил ошибку, не получая доступа к объектам после сохранения. Вот объяснение: NHibernate.LazyInitializationException

Я считаю, что это связано с неправильным сохранением иерархии. Я не тестировал его, но, возможно, сохранение родительских объектов, если вы хотите получить к ним доступ, решит проблему. Простое помещение информации, к которой я должен был получить доступ после сохранения, в локальные переменные перед сохранением, казалось, решило мою проблему.

Я исправил ошибку, не получив доступа к объектам после сохранения. Вот пояснение: NHibernate.LazyInitializationException

Я считаю, что это связано с неправильным сохранением иерархии. Я не тестировал его, но, возможно, сохранение родительских объектов, если вы хотите получить к ним доступ, решит проблему. Простое помещение информации, к которой я должен был получить доступ после сохранения, в локальные переменные перед сохранением, казалось, решило мою проблему.

0
ответ дан 14 December 2019 в 13:44
поделиться
Другие вопросы по тегам:

Похожие вопросы: