Asp.Net Nhibernate使用Criteria查询数据使用方法小记
2012-09-10 15:33
465 查看
在Asp.Net中,使用Nhibernate将数据库表与实体映射,这样对数据库的操作就可以转化为对实体的操作,例如实体类RsUser与数据库表T_User映射后,查询数据库的操作就主要分为以下几种:
1. 获取满足某一条件的整个实体类信息NHibernate.Criterion.Expression.Eq用法
2. 获取单个属性信息:NHibernate.Criterion.Projections.Property用法
3. 给一条件集 只要满足其中一项:NHibernate.Criterion.Expression.In用法
4. 模糊查询: NHibernate.Criterion.Expression.Like用法
5. 取并集以及排序:NHibernate.Criterion.Expression.Or以及new NHibernate.Criterion.Order用法 false代表降序 true代表升序
1. 获取满足某一条件的整个实体类信息NHibernate.Criterion.Expression.Eq用法
public IList<RsUser> GetUsersByCode() { ICriteria criteria = Session.GetISession().CreateCriteria(typeof(RsUser)); criteria.Add(NHibernate.Criterion.Expression.Eq("Code", code)); return criteria.List<RsUser>(); }
2. 获取单个属性信息:NHibernate.Criterion.Projections.Property用法
public int GetUserIDByCode(string code) { ICriteria criteria = Session.GetISession().CreateCriteria(typeof(RsUser)) .Add(NHibernate.Criterion.Expression.Eq("Code", code)) .SetProjection(NHibernate.Criterion.Projections.Property("ID")); return criteria.UniqueResult<int>(); }
3. 给一条件集 只要满足其中一项:NHibernate.Criterion.Expression.In用法
public IList<RsUser> GetUsersByIDs(string ids) { if (string.IsNullOrEmpty(ids)) { ids = ""; } IList<string> idStringList = ids.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries); int[] idCollection = new int[idStringList.Count]; for (int i = 0; i < idStringList.Count; i++) { idCollection[i] = int.Parse(idStringList[i]); } ICriteria criteria = GetNHibernateISession().CreateCriteria(typeof(RsUser)) .Add(NHibernate.Criterion.Expression.In("ID", idCollection)); return criteria.List<RsUser>(); }
4. 模糊查询: NHibernate.Criterion.Expression.Like用法
public IList<RsUser> GetUsersBySearchContent(string content) { string str = "%" + content + "%"; ICriteria criteria = Session.GetISession().CreateCriteria(typeof(RsUser)); criteria.Add(NHibernate.Criterion.Expression.Like("UserCode",str)); return criteria.List<RsUser>(); }
5. 取并集以及排序:NHibernate.Criterion.Expression.Or以及new NHibernate.Criterion.Order用法 false代表降序 true代表升序
public IList<RsUser> GetUsersBySearchContent(string content) { string str = "%" + content + "%"; ICriteria criteria = Session.GetISession().CreateCriteria(typeof(RsUser)); criteria.Add(NHibernate.Criterion.Expression.Or(NHibernate.Criterion.Expression.Like("UserCode", str), NHibernate.Criterion.Expression.Like("UserTrueName", str))) .AddOrder(new NHibernate.Criterion.Order("RegisterTime", false)); return criteria.List<RsUser>(); }
相关文章推荐
- 详细介绍ASP.NET页面间数据传递的使用方法
- [翻译]Scott Mitchell 的ASP.NET 2.0数据教程之四十七:使用SqlDataSource控件查询数据
- 在asp.net AJAX客户端使用复杂数据类型方法
- ado.net entity framework使用不同的方法查询数据的不同性能
- 使用ASP.NET AJAX异步调用Web Service和页面中的类方法(7):服务器端和客户端数据类型的自动转换:泛型集合类型
- 使用ASP.NET AJAX异步调用Web Service和页面中的类方法:服务器端和客户端数据类型的自动转换:复杂类型
- asp.net下的“Eval()、XPath() 和 Bind() 这类数据绑定方法只能在数据绑定控件的上下文中使用。”错误的一个可能的成因
- asp.net查询数据库时提示使用的sql server版本不支持数据类型date
- Asp.Net使用DataTable查询数据库数据
- Asp.net中用核选框显示数据的方法及ButtonColumn的使用方法
- 使用ASP.NET AJAX异步调用Web Service和页面中的类方法(10):服务器端和客户端数据类型的自动转换:以XML方式序列化数据、小结
- asp.net数据绑定DataBind使用方法
- asp.net 中使用EasyUI Datagrid 加载动态数据分页查询
- 如何使用 ASP.NET、ADO.NET 和 Visual C# .NET 查询和显示 Excel 数据
- 使用ASP.NET AJAX异步调用Web Service和页面中的类方法(8):服务器端和客户端数据类型的自动转换:数组类型
- Scott Mitchell 的ASP.NET 2.0数据教程之四十八 使用SqlDataSource控件查询数据
- ASP.NET使用EF时的seed方法以及初始数据的构造
- 使用ASP.NET AJAX异步调用Web Service和页面中的类方法(6):服务器端和客户端数据类型的自动转换:复杂类型
- Asp.net中用核选框显示数据的方法及ButtonColumn的使用方法
- 关于ASP.NET“操作必须使用一个可更新的查询”问题的解决方法