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);

NHibernate 有好几种数据库查询方式的更多相关文章

  1. MySql、SqlServer、Oracle 三种数据库查询分页方式

    SQL Server关于分页 SQL 的资料许多,有的使用存储过程,有的使用游标.本人不喜欢使用游标,我觉得它耗资.效率低:使用存储过程是个不错的选择,因为存储过程是颠末预编译的,执行效率高,也更灵活 ...

  2. mybatis两种嵌套查询方式

    1,推荐用第一种 <select id="getTeacher2" resultMap="TeacherStudent"> select s.id ...

  3. drill 数据库查询方式简单说明

    1. mysql   select * from mysql-storage.mysqldb.mysqltable   2. oracle    select * from oracle-storag ...

  4. iBatis.Net(C#)数据库查询

    引用请注明http://www.cnblogs.com/13590/archive/2013/03/14/2958735.html  摘要:查询是数据库SQL语言的核心,本文介绍了通过iBatis.N ...

  5. IBatis.Net学习笔记五--常用的查询方式

    在项目开发过程中,查询占了很大的一个比重,一个框架的好坏也很多程度上取决于查询的灵活性和效率.在IBatis.Net中提供了方便的数据库查询方式. 在Dao代码部分主要有两种方式:1.查询结果为一个对 ...

  6. 转载 50种方法优化SQL Server数据库查询

    原文地址 http://www.cnblogs.com/zhycyq/articles/2636748.html 50种方法优化SQL Server数据库查询 查询速度慢的原因很多,常见如下几种: 1 ...

  7. Oracle 数据库(oracle Database)Select 多表关联查询方式

    Oracle数据库中Select语句语法及介绍 SELECT [ ALL | DISTINCT ] <字段表达式1[,<字段表达式2[,…] FROM <表名1>,<表名 ...

  8. Hibernate的四种查询方式(主键查询,HQL查询,Criteria查询,本地sql查询)和修改和添加

    Hibernate的添加,修改,查询(三种查询方式)的方法: 案例演示: 1:第一步,导包,老生常谈了都是,省略: 2:第二步,创建数据库和数据表,表结构如下所示: 3:第三步创建实体类User.ja ...

  9. Hibernate的Api以及三种查询方式

    Hibernate  Api |-- Configuration       配置管理类对象 config.configure();    加载主配置文件的方法(hibernate.cfg.xml) ...

随机推荐

  1. Mac使用终端安装Homebrew(brew)

    Homebrew简称brew,OSX上的软件包管理工具,在Mac终端可以通过brew安装.更新.卸载软件. 1.打开终端直接输入下面指令回车: // ruby -e "$(curl -fsS ...

  2. MVC图片验证

    1.创建一个验证类,里面有生成验证码的两个方法. namespace YTJWGL_Common { public class ValidatorCodeTools { #region 生成校验码图片 ...

  3. wpf Listbox 实现按住ctrl键来取消选中

    1. 首先继承一个listbox,来获得按住ctrl键时,点击的item public class ListBoxEx : ListBox { public BeatTemplateWave GetA ...

  4. .NET Entity Framework (with Oracle ODP.NET) -Code First

    上一篇文章介绍了.NET Entity Framework ,并演示了Model First模式,本文将继续讨论 Code First 模式的实现. 一.摘要 1.目标 本文验证了通过Oracle D ...

  5. Flask系列06--(中间件)Flask的特殊装饰器 before_request,after_request, errorhandler

    一.使用 Flask中的特殊装饰器(中间件)方法常用的有三个 @app.before_request # 在请求进入视图函数之前 @app.after_request # 在请求结束视图函数之后 响应 ...

  6. API网关【gateway 】- 2

    最近在公司进行API网关重写,公司内采用serverMesh进行服务注册,调用,这里结合之前学习对API网关服务进行简单的总结与分析. 由于采用了大量的nginx相关的东西,所以在此记录一下: 配置连 ...

  7. Unable to preventDefault inside passive event listener due to target being treated as passive?

    使用滚动时候,新版google浏览器,会弹出如下的警告. 解决方法,可以加上* { touch-action: none; } 这句样式去掉. 其原因:https://developers.googl ...

  8. Python网络练习题

    练习题 什么是C/S架构? C/S架构客户端.服务端架构,C/S端软件主要有网络游戏,QQ等 互联网协议是什么?分别介绍五层协议中每一层的功能? 互联网协议:计算机之间的通信标准 物理层:主要是基于电 ...

  9. [EXP]WordPress Core 5.0 - Remote Code Execution

    var wpnonce = ''; var ajaxnonce = ''; var wp_attached_file = ''; var imgurl = ''; var postajaxdata = ...

  10. 学习推荐-Redis学习手册

    redis之旅: http://www.cnblogs.com/stephen-liu74/archive/2012/02/27/2370212.html