易截截图软件、单文件、免安装、纯绿色、仅160KB

NHibernate执行原始SQL代码的方法小结

在使用NHibernate过程中经常会使用到复杂的sql查询,但是使用hql又比较麻烦的情况下,我们往往都会想到采用原始的sql来执行。但是如何利用NHibernate来执行sql呢?问题来了,在NHibernate中也有AdoTemplate的方法可以执行sql的,但是这里要介绍的是另外一种方法:CreateSQLQuery。以下部分例子源自于网络。
实例一(源自于http://blog.csdn.net/canduecho/archive/2009/05/04/4149930.aspx,感谢博主分享):
Nhibernate中CreateSQLQuery用法实例:
涉及的表:
Cake{
Id ,
CakeName
。。。。
}
CakeSize{
CakeId,-为外键,对应Cake表的字段Id
Size
}

(其中ISession session = NHibernateHelper.GetCurrentSession();)
用法一(返回数值):
ISQLQuery query = session.CreateSQLQuery("SELECT COUNT(Id) AS C from Cake").AddScalar("C", NHibernateUtil.Int32);
int c = Convert.ToInt32(query.UniqueResult());
或int c = query.UniqueResult<int>;//使用此方法发现sql执行了两次,故不推荐使用。
用法二(返回对象实体):
ISQLQuery query = session.CreateSQLQuery("select * from cake c").AddEntity("CAKE.DataTransfer.Entities.Cake");

ISQLQuery query = session.CreateSQLQuery("select * from cake c").AddEntity("c", "CAKE.DataTransfer.Entities.Cake");

ISQLQuery query = session.CreateSQLQuery("select * from cake c").AddEntity(typeof(Cake));

ISQLQuery query = session.CreateSQLQuery("select * from cake c").AddEntity("c", typeof(Cake));


ISQLQuery query = session.CreateSQLQuery("select * from cake c").AddEntity("c", typeof(Cake), LockMode.Write);
IList<Cake> c = query.List<Cake>();

用法三(连表查询):
ISQLQuery query = session.CreateSQLQuery("select cs.* from cake c join CakeSize cs on cs.CakeId=c.Id")
.AddEntity("cs", typeof(CakeSize));
IList<CakeSize> cs = query.List<CakeSize>();
以上是一种常见的用法,通过该例子,相信大家心里也已经有个数了,也应该知道怎么操作这个sql了:)
但是过程中难免会遇到些问题,比如:
实例二(问题说明):
我需要执行例如这条sql语句:
select CreateTime,Address,Password, (case when EmailType = 0 then 'Gmail' when EmailType = 1 t


相关文档:

MS SQL2000数据库自动备份的几种方法(ms sql 2000 )

一、简单实用的备份方法:
企业管理器中的Tools,Database Maintenance Planner,可以设置数据库的定期自动备份计划。并通过启动Sql server Agent来自动运行备份计划。具体步骤如下:
1、打开企业管理器,在控制台根目录中依次点开Microsoft SQL Server-->SQL Server组-->双击打开你的服务器
2、然后点上面菜单中 ......

sql数据类型详解

sql数据类型详解
(1)二进制数据类型
  二进制数据包括 Binary、Varbinary 和 Image
  Binary 数据类型既可以是固定长度的(Binary),也可以是变长度的。
  Binary[(n)] 是 n 位固定的二进制数据。其中,n 的取值范围是从 1 到 8000。其存储窨的大小是 n + 4 个字节。
  Varbinary[(n)] 是 n 位变长度的二进制� ......

SQL Server 2005 没有SQL Server Management Studio


 
SQL Server 2005 没有SQL Server Management Studio
安装visual studio 2005的时候系统也装了SQL 2005。请注意,这时安装上的SQL2005是Express版本的,既不是企业版,也不是开发者版。这时的Express版是没有安装SQL Server Management Studio 的,只有配置工具,也就是说你在开始菜单只看得到配置工具。
这时 ......

SQL Server的恢复模式

恢复模式(Recovery Model)旨在控制事务日志维护。恢复模式说明了工作丢失的风险,能否恢复到时点? 
SQL Server数据库有三种恢复模式:简单恢复模式、完整恢复模式和大容量日志恢复模式。
相对于简单恢复模式而言,完整恢复模式和大容量日志恢复模式提供了更强的数据保护功能。这些恢复模式都是基于备份事务日� ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号