Успешная аутентификация должна быть "нормальным" случаем, таким образом, ошибка аутентификации является исключительным случаем.
, Каковы различные строки состояния для пользователя так или иначе. Я вижу только два, успешность или неуспешность. Дальнейшей информацией является потенциальная проблема безопасности. Другое преимущество решения за исключениями состоит в том, что это нельзя назвать неправильным способом, и случай возникновения отказов более очевиден. Без исключений Вы пишете:
if (authenticate()) {
// normal behaviour...
}
else {
// error case...
}
можно случайно назвать метод, игнорирующий возвращаемое значение. "Нормальное поведение" код тогда выполняется без успешной аутентификации:
authenticate();
// normal behaviour...
, Если Вы используете исключения, которых не может произойти. Если Вы решаете не использовать исключения, по крайней мере, назвать метод так, чтобы было ясно, что это возвращает состояние, например:
if (isAuthenticated()) {
//...
}
Предполагая, что организация имеет IList
HasMany
должен работать. Убедитесь, что это свойство и что у вас есть защищенные геттеры и сеттеры (частные не будут работать, поскольку NHibernate захочет проксировать коллекцию для отложенной загрузки).