1
A
ответ
1
Вы можете изменить режим выборки для каждого запроса динамически.
IList cats = sess.CreateCriteria(typeof(Cat))
.Add(Expression.Like("Name", "Fritz%"))
.SetFetchMode("Mate", FetchMode.Eager)
.SetFetchMode("Kittens", FetchMode.Eager)
.List();
См. Раздел 12.5 of documentation.
1
Есть ли BestPractice для скрытия API ICriteria, потому что я не хочу использовать этот API в слое пользовательского интерфейса? Должен ли я создать перегрузку для моего метода repository.GetAll или есть другие рекомендации? – Rookian
Я не уверен, что вы имеете в виду. Возможно, посмотрите на «Обтекание API запросов» в http://jnb.ociweb.com/jnb/jnbNov2003.html, если вы обеспокоены тем, как предлагать объекты запросов в пользовательском интерфейсе. В противном случае уровень пользовательского интерфейса зависит от бизнес-уровня, который зависит от уровня доступа к данным, а элементы nhibernate обычно находятся на уровне доступа к данным. – ewernli
Я просто переопределяю мой метод GetAll. Мне не нравятся уродливые струны, я думаю, что я написал для этого небольшой вспомогательный класс. Спасибо, пока. – Rookian