Единственным путем я знаю о выполнении разработки в Linux для iPhone, должен был бы установить VMware и работать над получением OS X, работающего в виртуальной машине. После этих слов существуют некоторые "легальные" проблемы в выполнении этого. Сообщается, что Сервер OS X может быть виртуализирован, но до истории разработки на этом я не знаю.
, Если бы Вы действительно серьезны, это, что я исследовал бы.
Удача.
Да, всегда удаляйте ISession
. См. документацию по использованию ISessionManager
.
Для транзакций рассмотрите возможность использования Automatic Transaction Facility .
SessionManager поддерживает ATM , поэтому он удалит ISession
, когда это необходимо, с учетом транзакций, даже если вы явно удалили ISession
.
Вот быстрый и грязный пример приложение , использующее ASP.NET MVC + Castle Automatic Transaction Facility + NHibernate
Мы используем транзакции с операторами 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Я считаю, что это связано с неправильным сохранением иерархии. Я не тестировал его, но, возможно, сохранение родительских объектов, если вы хотите получить к ним доступ, решит проблему. Простое помещение информации, к которой я должен был получить доступ после сохранения, в локальные переменные перед сохранением, казалось, решило мою проблему.