一、延迟加载

//用户发布的主题,一对多;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 = ;
StringBuilder htmlStr2 = new StringBuilder();
IList<Models.UserInfo> list2 = Models.UserInfo.FindInPage(, , 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"】中的字段名,不是属性名称。

Castle ActiveRecord学习(四)延迟加载、分页查询、where条件的更多相关文章

  1. Castle ActiveRecord学习实践

    Castle是针对.NET平台的一个开源项目,从数据访问框架ORM到IOC容器,再到WEB层的MVC框架.AOP,基本包括了整个开发过程中的所有东西,为我们快速的构建企业级的应用程序提供了很好的服务. ...

  2. 项目一:第四天 1、快递员的条件分页查询-noSession,条件查询 2、快递员删除(逻辑删除) 3、基于Apache POI实现批量导入区域数据 a)Jquery OCUpload上传文件插件使用 b)Apache POI读取excel文件数据

    1. 快递员的条件分页查询-noSession,条件查询 2. 快递员删除(逻辑删除) 3. 基于Apache POI实现批量导入区域数据 a) Jquery OCUpload上传文件插件使用 b) ...

  3. Castle ActiveRecord学习(五)使用HQL语句查询

    来源:http://www.cnblogs.com/Terrylee/archive/2006/04/12/372823.html 一.HQL简单介绍HQL全名是Hibernate Query Lan ...

  4. Castle ActiveRecord学习(三)数据映射及特性描述

    Model中的Demo: using Castle.ActiveRecord; using Castle.ActiveRecord.Queries; using System; using Syste ...

  5. Castle ActiveRecord学习(六)数据验证

    参考.来源:http://www.cnblogs.com/Terrylee/archive/2006/04/13/374173.html https://github.com/castleprojec ...

  6. Castle ActiveRecord学习(二)配置、引用、程序启动

    来源:http://www.cnblogs.com/zxj159/p/4082987.html 配置数据库驱动: Model层引用:Castle.ActiveRecord.dll.NHibernate ...

  7. Castle ActiveRecord学习(一)简介

    简介 来源:http://www.cnblogs.com/zxj159/p/4082987.html 一.Active Record(活动记录)模式 Active Record是业务逻辑层中(< ...

  8. Node.js、express、mongodb 实现分页查询、条件搜索

    前言 在上一篇Node.js.express.mongodb 入门(基于easyui datagrid增删改查) 的基础上实现了分页查询.带条件搜索. 实现效果 1.列表第一页. 2.列表第二页 3. ...

  9. dhtmlxGrid分页查询,条件查询实例

    使用jquery的ajax get将页面条件请求到后台,取得数据库数据,分页查询,返回前台grid中. 引入所需文件: <script>window.dhx_globalImgPath = ...

随机推荐

  1. Java 类的生命周期

    类从被加载到JVM内存中开始,到卸载出内存为止,它的整个生命周期包括: 加载(Loading)-->验证(Verification)-->准备(Preparation)-->解析(R ...

  2. HBase基础之Hbase shell常用操作

    一般操作 查看服务器状态 status 查看hbase版本 version DDL操作 创建表 create 'member','member_id','address','info' 创建了3个列族 ...

  3. Linux文件系统性能优化

    本文绝大部分是转载自CSDN刘爱贵专栏: http://blog.csdn.net/liuben/archive/2010/04/13/5482167.aspx另外根据参考文档增补了一部分内容. 由于 ...

  4. django的小操作,查询效率up, 引用art-template模板+djangorestframework

    Part1: 提高查询效率newses = News.objects.select_related('category', 'author').get(id=1) # category和author字 ...

  5. 使MySQL查询区分大小写的实现方法

    发布:mdxy-dxy 字体:[增加 减小] 类型:转载 我们在MySQL中使用SELECT语句查询时,可不可以使查询区分大小写?今天从网络上找到了方法,现总结如下.   1.一种方法是可以设置表或行 ...

  6. HTML5 Canvas 小例子 旋转的图片

    <一>CSS部分 @charset "utf-8"; *{ padding:; margin:; outline: none; } #canvas{ position: ...

  7. nginx直接返回json

    尝试配置nginx.conf之后,访问直接变成下载文件... 查阅之后,发现需要配置返回内容的格式. location ~ ^/get_json { default_type application/ ...

  8. SQL 2012 分页取数据

    ,), data int ) select * from t1 row rows only create clustered index t1c on t1(id) declare @i int ) ...

  9. 7 python 模块间相互导入

    python在不同层级目录import模块的方法 注意,在python3里,即使目录下没__int__.py文件也能创建成功,猜应该是解释器优化所致,但创建包还是要记得加上这个文件 吧. 1.模块的分 ...

  10. TensorFlow入门-Tianic数据集训练

    import pandas as pd import tensorflow as tf from sklearn.model_selection import train_test_split imp ...