Fluent NHibernate Where Clause

Muszę napisać zapytanie w języku NHibernate dla

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

Jak utworzyć powyższe zapytanie za pomocą session.CreateCriteria

Author: Phill, 2011-07-12

2 answers

Fluent NHibernate jest alternatywnym frameworkiem mapowania dla domyślnych plików HBM (mapowanie Hibernate)

NHibernate sam oferuje różne API zapytań jak

  • HQL-Hibernate Querying Language
  • kryteria
  • Query - (odpowiednik LINQ)
  • QueryOver - (silnie wpisane kryteria)
  • SQL

Dla kryteriów Twoje zapytanie byłoby czymś w rodzaju of:

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

Zapytanie:

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

Lub

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();
 47
Author: Phill,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-07-12 04:46:06

Query Over

var users = session.QueryOver<Users>()
                   .Where(x => x.UserName == "Abcd" && x.Password == "123456")
                   .List();
 0
Author: Dayadra Dharmasena,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-07-23 11:34:58