
基本用法 如下。
var cri = session.CreateCrieria(typeof(User))
.CreateCriteria("Roles")
.Add(Restrictions.Eq("RoleName","admin");
var cri = session.CreateCrieria(typeof(User))
.CreateAlias("Roles","role")
.Add(Restrictions.Eq("role.RoleName","admin");
现在我除了想查role是admin的用户外,也想查出UserName名字叫做Joe的用户,那么他们就有区别
var cri = session.CreateCrieria(typeof(User))
.Add(Restrictions.Eq("UserName", "Joe")
.CreateCriteria("Roles")
.Add(Restrictions.Eq("RoleName","admin");
//第一种写法
var cri = session.CreateCrieria(typeof(User))
.Add(Restrictions.Eq("UserName", "Joe") //紧贴着User
.CreateAlias("Roles","role")
.Add(Restrictions.Eq("role.RoleName","admin");
//第二种写法。
var cri = session.CreateCrieria(typeof(User))
.CreateCriteria("Roles")
.Add(Restrictions.Eq("RoleName","admin");
.Add(Restrictions.Eq("UserName", "Joe") //
根据ayende?说,是生成的sql效率是一样的,不过原来的blog已经找不到了。
期待看到有用的回答!
针快