NHibernate提供了3種較常使用的方式來查詢資料庫,分別是為ICriteria、IQuery、ISQLQuery,ICriteria是NHibernate內建提供物件來取代Query語法,對於用慣SQL Query的我來說,其實看起來有點不大習慣,不想看到Query語法時,用用這個也不錯
NHibernate版本為1.2.0.CR1
ICriteria由ISession產生即可
ISession sess = XXXXXXXX;
ICriteria ic = sess.CreateCriteria(typeof(object)); //object為要查詢的物件名
假設有一個員工Employee Object,要查詢編號ID=1111的員工
ICriteria ic = sess.CreateCriteria(typeof(Employee));
ic.Add(Expression.Eq("ID", 1111));
使用ICriteria時,查詢條件都由Expression控制,Sql語法有的大於小於等於、Not、In、Is null、is not null都由此元件設定,ID指的是object property,1111是value,value需配何property的型態,所以如果ID是字串型態,那麼1111就要寫成"1111"
多個查詢條件未特別註明時,都以And串連起來,所以如果想要查性別女及地址在台北市的員工
ic.Add(Expression.Eq("Sex", "F"));
ic.Add(Expression.Eq("Area", "台北市"));
若想查詢住在台北市或高雄市的員工,可以使用Or
OrExpression or = new OrExpression(Expression.Eq("Area", ”台北市”), Expression.Eq("Area","高雄市"));
ic.Add(or);
或者是直接ic.Add(Expression.Or(Expression.Eq("Area", ”台北市”), Expression.Eq("Area","高雄市")));
And也是相同用法,AndExporession或Expression.And
- Dec 17 Mon 2007 13:35
NHibernate ICriteria使用方式
close
全站熱搜
留言列表