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已经找不到了。
  • 相关阅读:
    Java的错误类型
    交换两个变量的值
    变量的自增、自减、自乘、自除运算
    通过Scanner从控制台获取数据
    通过args数组获取数据
    int类型与char类型的转换
    大类型向小类型转换
    小类型向大类型转换
    6 高级2 自连接 视图
    5 高级 关系 连接
  • 原文地址:https://www.cnblogs.com/fantasylu/p/1747053.html
Copyright © 2011-2022 走看看