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已经找不到了。
  • 相关阅读:
    rotatelogs分割apache日志文件
    Linux怎么设置PostgreSQL远程访问
    【转】Shell编程
    【转】lnmp_auto:自动化安装lnmp环境脚本
    postgres配置主从流复制
    PHP中的魔术方法总结
    postgresql 忘记 postgres 密码
    linux下解压命令大全
    Java NIO Selector
    Channel (Java NIO)
  • 原文地址:https://www.cnblogs.com/fantasylu/p/1747053.html
Copyright © 2011-2022 走看看