Castle学习系列(七)---ActiveRecord HQL介绍
来源:互联网 发布:手机打不开数据流量 编辑:程序博客网 时间:2024/05/19 15:41
ActiveRecord 中HQL也就是NHibernate中的HQL,可用来查询实体。
简单的HQL写法如下:
public static Post[] GetPosts(int id){ SimpleQuery<Post> q = new SimpleQuery<Post>(@"from Post p where p.OwnerBlog.id = ?", id); return q.Execute();}public static int[] GetPostIdsFromInterval(int start, int end){ SimpleQuery<int> q = new SimpleQuery<int>(typeof(Post), @"select p.Id from Post p where p.Id between :start and :end"); q.SetParameter("start", start); q.SetParameter("end", end); return q.Execute();}public int CurrentPostMax(){ ScalarQuery<int> q = new ScalarQuery<int>(typeof(Post), @"select max(p.Id) from Post p where p.OwnerBlog = ?", this); return q.Execute();}
其中SimpleQuery为简单的查询类,而ScalarQuery为简单的查询单个字段值的类。当然ActiveRecord可用NHibernate的查询方法,代码如下:
public static Post[] GetPostsFromAuthor(String author){ return (Post[])Execute ( delegate(ISession session, object instance) { IQuery query = session.CreateQuery("from Post p where p.OwnerBlog.Name = :author"); query.SetString("author", (String)instance); IList results = query.List(); Post[] posts = new Post[results.Count]; results.CopyTo(posts, 0); return posts; }, author );}
要了解HQL更多知识,请参考NHibernate官方文档。
0 0
- Castle学习系列(七)---ActiveRecord HQL介绍
- Castle学习系列(二)---ActiveRecord普通CRUD
- Castle学习系列(三)---ActiveRecord生命周期
- Castle学习系列(四)---ActiveRecord映射配置
- Castle学习系列(五)---ActiveRecord事务
- Castle学习系列(六)---ActiveRecord属性校验
- Castle ActiveRecord学习实践(7):使用HQL查询
- Castle ActiveRecord 介绍
- Castle ActiveRecord 学习 123
- Castle学习系列(一)---ActiveRecord基础环境配置
- Castle学习系列(八)---ActiveRecord 执行的SQL监测
- C#.Net Castle ActiveRecord学习实践(7):使用HQL查询
- [Castle ActiveRecord] 2. ActiveRecord
- Castle ActiveRecord学习笔记三:初始化配置
- Castle学习系列
- Castle ActiveRecord学习实践(1):快速入门指南
- Castle ActiveRecord学习实践(2):构建配置信息
- Castle ActiveRecord学习实践(3):映射基础
- 使用top查看进程和系统负载信息
- HDU2489Minimal Ratio Tree(最小生成树+状态压缩)
- hadoop完全分布式集群搭建(Ubuntu14.04+Hadoop2.5.1)(自测成功)
- windows进程间通信
- old_blog 维吉利亚加密与破译
- Castle学习系列(七)---ActiveRecord HQL介绍
- pat1050
- Twisted xmlrpc服务端获得客户端ip的方法
- 区间dp
- 十一种通用滤波算法
- [Cocoa]_[初级]_[vcf文件的生成和导出]
- Hack Dalvik VM解决Android 2.3 DEX/LinearAllocHdr超限
- golang学习之--简单的web网站
- apache/lighttpd/nginx 对比