Как передать параметр в моем методе, чтобы вернуться с помощью сеанса без сохранения состояния? минимизировать дублирование кода - PullRequest
0 голосов
/ 26 сентября 2011

Я хочу передать параметр в вызове моего метода, если установлен (это логическое значение), а затем вернуть сеанс без сохранения состояния.

Я не хочу дублировать код QueryOver, есть ли способимейте это как:

public virtual IList<User> GetAllUsers(bool isStateless)
{

  var query = QueryOver<User>().Where(x => x.UserType == 1).ToList();

  if(isStateless)
    return NHibernateHelper.Session(query);
  else
    return NHibernateHelper.StatelessSession(query);

}

Я знаю, что вышеупомянутое не будет работать, но я надеюсь, что ясно, что я преследую.Код запроса и единственное различие между блоками кода будет то, что один будет использовать. Session, а другой будет использовать. StatelessSession.

Надеемся, что есть более чистый способ.

1 Ответ

2 голосов
/ 27 сентября 2011
var query = QueryOver.Of<User>().Where(x => x.UserType == 1);

IQueryOver<User, User> executableQuery;
if(isStateless)
    executableQuery = query.GetExecutableQueryOver(NHibernateHelper.Session);
else
    executableQuery = query.GetExecutableQueryOver(NHibernateHelper.StatelessSession);

return executableQuery.ToList();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...