zoukankan      html  css  js  c++  java
  • NHibernate 有好几种数据库查询方式

    NHibernate 有好几种数据库查询方式
    1、原生SQL
    var employeeQuery = Database.Session
    	.CreateSQLQuery("select * from Employee where FirstName = 'John'")
    	.AddEntity(typeof(Employee));
    var employees = employeeQuery.List<Employee>();
    
    2、Hibernate Query Language(HQL)HN自己的一条语言,简称HQL
    
    var employeeQuery = Database.Session
    	.CreateQuery("select e  from Employee as e");
    
    var employees = Database.Session
    	.CreateQuery("select e from Employee as e ")
    	.List<Employee>();
    //select e from Employee as e where e.Firstname = 'John'
    var firstName = "John";
    var employees = Database.Session
    	.CreateQuery("select e from Employee as e where e.Firstname = '" 
    	+ firstName 
    	+ "'")
    	.List<Employee>();
    
    var employeeQuery = Database.Session
    	.CreateQuery("select e from Employee as e where e.Firstname = :firstName");
    employeeQuery.SetParameter("firstName", "John");
    var employees = employeeQuery.List<Employee>();
    
    3、Criteria API 标准API
    
    using (var transaction = database.Session.BeginTransaction())
    {
      var employeeQuery = database.Session.CreateCriteria<Employee>();
      employeeQuery.Add(Restrictions.Eq("Firstname", "john"));
      var employees = employeeQuery.List<Employee>();
      transaction.Commit();
    }
    
    using (var transaction = database.Session.BeginTransaction())
    {
      var employees = database.Session.CreateCriteria<Employee>()
      .Add(Restrictions.Eq("Firstname", "john"))
      .List<Employee>();
      transaction.Commit();
    }
    
    using (var transaction = database.Session.BeginTransaction())
    {
     	var employees = database.Session.CreateCriteria<Employee>()
    	.Add(Restrictions.Between("DateOfJoining", DateTime.Now.AddYears(-1), DateTime.Now))
      	.List<Employee>();
      	transaction.Commit();
    }
    
    4、The QueryOver API
    var employees = Database.Session.QueryOver<Employee>()
    .Where(x => x.Firstname == "John")
    .List<Employee>();
    
    var employees = Database.Session
    .QueryOver<Employee>()
    .Where(x => x.DateOfJoining > DateTime.Now.AddYears(-1) &&  
    x.DateOfJoining < DateTime.Now)
    .List<Employee>();
    
    
    5、LINQ
    var employees = from e in Database.Session.Query<Employee>()
            where e.Firstname == "John" select e;
    var employees = Database.Session.Query<Employee>()
    .Where(e => e.Firstname == "John");
    
    var employees = from e in Database.Session.Query<Employee>()
    where e.DateOfJoining > DateTime.Now.AddYears(-1) &&
    e.DateOfJoining < DateTime.Now
    select e;
    var employees = Database.Session.Query<Employee>()
    .Where(e => e.DateOfJoining > DateTime.Now.AddYears(-1) &&
    e.DateOfJoining < DateTime.Now);
    
  • 相关阅读:
    Java中基于线程池的任务调度设计
    Java中数值型,字符型及字符串的相互转换
    Java编程中必备的十种技能
    Java键盘读入方法
    Java中数据类型及运算符的注意事项
    Java抽象类是否可继承实体类
    Java多线程:start(),sleep(),yield(),join()
    Java线程静态在对象缓存中的妙用
    webAPI
    javascript中的作用域和变量提升
  • 原文地址:https://www.cnblogs.com/wanghaibin/p/5331372.html
Copyright © 2011-2022 走看看