zoukankan      html  css  js  c++  java
  • CreateAlias 与 CreateCriteria的区别

       在NHibernate里面查很常用。CreateAlias 返回值还是当前的Criteria,但是CreateCriteria返回的新的Criteria。

    Main

    基本用法 如下。

    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已经找不到了。
  • 相关阅读:
    nginx:安装成windows服务
    org.aspectj.apache.bcel.classfile.ClassFormatException: Invalid byte tag in constant pool: 18
    数据库中间件
    架构策略
    谈判
    设计模式 总结 常用10种
    08 状态模式 state
    07 策略模式 strategy
    06 命令模式(不用)
    05 观察者模式 Observer
  • 原文地址:https://www.cnblogs.com/fantasylu/p/1747053.html
Copyright © 2011-2022 走看看