一、延迟加载

//用户发布的主题,一对多;Table:外键表;ColumnKey:外键;Lazy:延迟加载;Cascade:级联操作(级联删除)[HasMany(typeof(ThemeInfo), Table = "ThemeInfo", ColumnKey = "UserID", Lazy = true, Cascade = ManyRelationCascadeEnum.Delete)]public virtual IList<ThemeInfo> ThemeInfos { get; set; }

Lazy=true,当需要用到的时候才会自动读取,用法:

//延迟加载,必须使用 using (new SessionScope())using (new SessionScope()){StringBuilder htmlStr1 = new StringBuilder();IList<Models.UserInfo> list1 = Models.UserInfo.FindAll();foreach (Models.UserInfo item in list1){htmlStr1.Append("编号:" + item.ID + "  名称:" + item.Name + "<br />");htmlStr1.Append("&nbsp;&nbsp;&nbsp;&nbsp;我的主题:<br />");foreach (Models.ThemeInfo item2 in item.ThemeInfos){htmlStr1.Append("&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;编号:" + item2.ID + "  名称:" + item2.Subject + "<br />");}}Literal1.Text = htmlStr1.ToString();int PageCount = 0;StringBuilder htmlStr2 = new StringBuilder();IList<Models.UserInfo> list2 = Models.UserInfo.FindInPage(2, 3, ref PageCount);foreach (Models.UserInfo item in list2){htmlStr2.Append("编号:" + item.ID + "  名称:" + item.Name + "<br />");htmlStr2.Append("&nbsp;&nbsp;&nbsp;&nbsp;我的主题:<br />");foreach (Models.ThemeInfo item2 in item.ThemeInfos){htmlStr2.Append("&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;编号:" + item2.ID + "  名称:" + item2.Subject + "<br />");}}Literal2.Text = htmlStr2.ToString();Literal3.Text = PageCount + "";}

分页查询:

//分页获取数据public static IList<UserInfo> FindInPage(int PageIndex, int PageSize, ref int PageCount){int BeginIndex = ((PageIndex - 1) * PageSize);string hql = " from UserInfo c ";SimpleQuery<UserInfo> query = new SimpleQuery<UserInfo>(hql);query.SetQueryRange(BeginIndex, PageSize);//设置从哪一条开始ScalarQuery squery = new ScalarQuery(typeof(UserInfo), "select Count(*) from UserInfo");int recordCount = Convert.ToInt32(ExecuteQuery(squery));//获得总条数PageCount = (recordCount / PageSize) + (recordCount % PageSize > 0 ? 1 : 0);return query.Execute();}

  

二、使用Where子句

[HasMany(typeof(ThemeInfo), Table = "ThemeInfo", ColumnKey = "UserID", Lazy = true, Cascade = ManyRelationCascadeEnum.Delete,Where="UserID=1")]public virtual IList<ThemeInfo> AdultThemeInfos { get; set; }

  查询所有UserID等于1的用户 发布的主题信息。Where中的条件语句须是表【Table="ThemeInfo"】中的字段名,不是属性名称。

转载于:https://www.cnblogs.com/xsj1989/p/5310432.html

Castle ActiveRecord学习(四)延迟加载、分页查询、where条件相关推荐

  1. Castle ActiveRecord学习实践(8)HQL查询

    本篇来了解下Castle ActiveRecord hql 查询语句. 博客园中讲解Castle ActiveRecord 的文章已经很多了,博主就不自己写了.转载一篇TerryLee大大的文章. 摘 ...

  2. Castle ActiveRecord学习实践(6):延迟加载和使用Where子句

    摘要:在ActiveRecord中把数据库表之间的关联关系采用对象间的聚合关系来表现,然而这却带来一系列的性能上的问题.就像我在One-Many中用到的例子Blog,使用Blog.Find(1)查找了 ...

  3. Castle ActiveRecord学习实践(7):使用HQL查询

    摘要:虽然ActiveRecord为我们提供了Find()和FindAll()这样两个静态的查询方法,并且有Where特性可供使用,但是仍然不能解决实际开发中一些复杂的查询,这时我们就需要通过HQL查 ...

  4. Castle ActiveRecord学习笔记四:各种映射

    这里主要来说明ActiveRecord的属性与数据库及其字段的对应关系. 主要以ActiveRecordAttribute.PrimaryKeyAttribute.PropertyAttribute来 ...

  5. Castle ActiveRecord学习实践(1):快速入门指南

    摘要:最近几天有时间看了一下Castle,原来它的功能是如此的强大,从数据访问框架到IOC容器,再到WEB框架,基本包括了整个开发过程中的所有东西,看来得好好学习研究一下了,并且打算把自己学习过程的一 ...

  6. JAVA学习之 实现分页查询

    分页是系统中常用到的功能,只要涉及到查询必定伴随而来的就是分页,之前也学习过关于分页的内容,例如在牛腩的新闻发布系统,之前学习的大部分都是使用了假分页,这次学习java,使用Oracle数据库来实现一 ...

  7. Castle ActiveRecord学习实践(5):实现Many–Many关系的映射

    摘要:多对多的关系在日常开发中也会经常遇到,在ActiveRecord中我们用HasAndBelongsToMany特性来实现Many-Many的关联,本文将通过一个具体的实例来介绍这一用法. 主要内 ...

  8. Castle ActiveRecord学习实践(2):构建配置信息

    摘要:ActiveRecord在底层封装了NHibernate,在框架启动时需要指定相关的配置信息,那么我们需要配置些什么?又该如何去配置呢?本文将会介绍在ActiveRecord中构建配置信息. 主 ...

  9. 一、MySQL查询学习笔记(基础查询、条件查询、排序查询、常见函数、分组查询 详解)

    DQL语言的学习 一.基础查询 语法: **SELECT 要查询的东西 [FROM 表名];**类似于Java中 :System.out.println(要打印的东西); 特点: ①通过select查 ...

最新文章

  1. 大数据中用到的新的数据类型bigint、decimal、smallint、tinyint
  2. encoder-decoder 注意力机制整理名望所
  3. phantomjs介绍
  4. Hyperledger Fabric 私有数据(1)概念
  5. 400分理科学计算机,理科400分能上哪些大学 高考400分算什么水平
  6. jQuery实现右上角点击后滑下来的竖向菜单
  7. ARM系列处理器的分类
  8. jwt token and shiro
  9. 整理python小爬虫
  10. 百度地图根据经纬度坐标,显示汽车行驶轨迹
  11. 北京 | 微信小程序及小游戏开发者线下交流会
  12. POI导入Excel文件(包含.xsl和.xslx文件兼容问题)
  13. 华为员工爆料,这个岗位要开始大量招人了!!!
  14. 关于OSPF 5类LSA中Forwarding Address
  15. Google浏览器打开axure产品原型的解决方案
  16. 蓝牙技术|了解蓝牙LE Audio的Auracast广播音频
  17. CloudComparePCL 点云点匹配(基于点到面的距离)
  18. 1639_perror的函数功能以及简单测试
  19. 产学互为表里,携手方见大道:华为云AI院长峰会的价值思考
  20. 如何寻找已注册dll的路径

热门文章

  1. php smarty关闭缓存,php+Smarty的缓存操作
  2. oracle包函数过程,oracle 函数,包,存储过程简单实例
  3. 什么叫计算机网络阻塞,计算机网络体系结构的阻塞控制是什么呢?
  4. jsp简介mysql_个人知识管理系统的设计与实现(JSP,MySQL)(含录像)
  5. 数据库_数据库篇-第一章:数据库基本概念
  6. html最新的版本是多少,HTML5之前的版本是什么?
  7. linux停止客户端,linux – 从客户端打印motd停止ssh登录?
  8. linux bin/ps,Linux下ps命令详解
  9. python类直接调用不实例化_未实例化类的python调用方法
  10. 关于介绍编程前景的html文档,HTML编程基础稿件(32页)-原创力文档