Свободный NHibernate Где Клаузула - PullRequest
21 голосов
/ 12 июля 2011

Мне нужно написать запрос в Fluent NHibernate для

Select * from Users where UserName = 'Abcd' AND Password = '123456'

Как создать вышеуказанный запрос с помощью session.CreateCriteria

Ответы [ 2 ]

47 голосов
/ 12 июля 2011

Fluent NHibernate является альтернативной средой сопоставления для файлов HBM по умолчанию (Hibernate Mapping)

Сам NHibernate предлагает различные API запросов, такие как

  • HQL - язык запросов Hibernate
  • Критерии
  • Запрос - (эквивалент LINQ)
  • QueryOver - (строго типизированные критерии)
  • SQL

Для критериев ваш запрос будетчто-то вроде:

var users = session.CreateCriteria<Users>()
                   .Add(Restrictions.Eq("UserName", "Abcd"))
                   .Add(Restrictions.Eq("Password", "123456"))
                   .List<Users>();

Запрос:

var users = from u in session.Query<Users>()
            where u.UserName == "Abcd"
            && u.Password == "123456"
            select u;

или

var users = session.Query<Users>()
                   .Where(x => x.UserName == "Abcd" && u.Password == "123456");

QueryOver:

var users = session.QueryOver<Users>()
                   .Where(x => x.UserName == "Abcd")
                   .And(u.Password == "123456")
                   .List();
0 голосов
/ 23 июля 2015

Запрос окончен

var users = session.QueryOver<Users>()
                   .Where(x => x.UserName == "Abcd" && x.Password == "123456")
                   .List();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...