web-dev-qa-db-ja.com

Fluent NHibernateWhere句

FluentNHibernateでクエリを作成する必要があります

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

session.CreateCriteriaを使用して上記のクエリを作成する方法

21
Saad

Fluent NHibernateは、デフォルトのHBMファイルの代替マッピングフレームワークです(Hibernateマッピング)

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

IQueryを使用している場合:

User user = new User();
user.username="Abcd";
user.password="123456";

IQuery q = session.CreateQuery("from foo in class Foo where
user.username=:username and user.password=:password");
q.SetProperties(user);
var users= q.List<User>(); 
0
Vivek Mohanty

クエリオーバー

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