Я только начинаю использовать nHibernate, и какое-то поведение немного беспокоит, так как оно, по-видимому, не вызывает исключений, когда вы пытаетесь выполнить какое-либо действие, если вы либо правильно его кодировали, либо у вас есть ошибка конфигурации.
Например, у меня есть некоторый код:
ISessionFactory sessions = SessionManager.SessionFactory;
ISession session = sessions.OpenSession();
ITransaction tx1 = null;
tx1 = session.BeginTransaction();
IList<BusinessUnit> businessUnits = session.QueryOver<BusinessUnit>().List();
System.Diagnostics.Debug.WriteLine("Count: " + businessUnits.Count);
businessUnits[0].Name += "z";
session.Save(businessUnits[0]);
if (tx1 != null) tx1.Commit();
session.Close();
Когда я впервые закодировал его, я не включил использование транзакции:
tx1 = session.BeginTransaction();
if (tx1 != null) tx1.Commit();
Так что, по-видимому,если транзакция отсутствует, nHibernate не (по крайней мере, в соответствии с моей конфигурацией) автоматически создает ее.Что хорошо, я полагаю.
Но что меня беспокоит, так это то, что если требуется транзакция и вы пытаетесь выполнить функцию Save () без , почему она не выдает исключение?
(До сих пор я сталкивался с другой подобной проблемой, я пытался загрузить коллекцию, но, очевидно, некоторые ошибки в моей конфигурации помешали успешной загрузке ... поэтому код выполняется, но не исключение, указывающее на что-то пошло не так).
Может быть, есть какие-то настройки конфигурации, которые я пропускаю, когда исключаются исключения, или нужно, чтобы человек все тестировал, так как нельзя предположить, что какое-либо поведение работает?