Подтвердить что ты не робот

Свободный NHibernate, где пункт

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

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

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

4b9b3361

Ответ 1

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

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

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

В отношении критериев ваш запрос будет выглядеть следующим образом:

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

Query:

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();

Ответ 2

Запрос

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