首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

NHibernate QueryOver - Doing和OrderBy ->使用什么语法?

NHibernate QueryOver是NHibernate框架中的一种查询语法,用于构建类型安全的查询。它提供了一种面向对象的查询方式,可以通过编写代码来构建查询,而不是使用字符串拼接。

在NHibernate QueryOver中,可以使用OrderBy方法来指定排序规则。OrderBy方法接受一个Lambda表达式作为参数,用于指定排序的属性。例如,如果要按照某个属性进行升序排序,可以使用以下语法:

代码语言:txt
复制
var result = session.QueryOver<Entity>()
    .OrderBy(e => e.Property).Asc
    .List();

其中,Entity是要查询的实体类型,Property是要排序的属性。

如果要按照多个属性进行排序,可以使用多个OrderBy方法。例如,按照两个属性进行升序排序的语法如下:

代码语言:txt
复制
var result = session.QueryOver<Entity>()
    .OrderBy(e => e.Property1).Asc
    .ThenBy(e => e.Property2).Asc
    .List();

其中,Property1Property2分别是要排序的两个属性。

除了升序排序(.Asc),还可以使用降序排序(.Desc)。例如,按照某个属性进行降序排序的语法如下:

代码语言:txt
复制
var result = session.QueryOver<Entity>()
    .OrderBy(e => e.Property).Desc
    .List();

NHibernate QueryOver提供了灵活且类型安全的查询语法,可以满足各种排序需求。在实际应用中,可以根据具体的业务需求选择合适的排序方式。

关于NHibernate QueryOver的更多信息,可以参考腾讯云的相关产品文档:NHibernate QueryOver

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

SQL Server字符串左匹配

在SQL Server中经常会用到模糊匹配字符串的情况,最简单的办法就是使用like关键字(like语法http://msdn.microsoft.com/en-us/library/ms179859....假设我们现在有个表YCMRSALE,其中有个字段MATNR存储了料号信息,如果我们要从这个表中查询出以AB开头的料号,如果使用NHibernate,那么我们常用的写法有: //QueryOver的写法...EntityFramework,那么查询的C#代码也NHibernate类似: var result = bwEntities.YCMRSALEs.Select(s => s.MATNR).Where...使用EntityFramework就很简单,什么都不需要修改,系统会根据传入的字符串生成不同的SQL语句: var result = bwEntities.YCMRSALEs.Select(s => s.MATNR...[MATNR] LIKE '~%00%' ESCAPE '~' 对开发人员来说,真是很简单,什么输入都不用管。

68110

NHibernate的单表继承模式下通过父类Repository查询子类

使用单表继承可以不用Join多个表查询效率高,而且在Domain Model的属性提示到父类或者下降到子类时,数据库模型不用更改。...在NHibernate中经常会遇到通过父类的Repository来查询子类的情况,比如现在有一个抽象的Employee对象,下面有OfficeUserTeacher两个具体的对象,这两个对象都有其特有的属性...我们可以将OfficeUserTeacher都保存到Employee表中,然后建立了一个EmployeeRepository,使用Employee作为Query的入口,那么如果要查询Employee表中所有的...下面分别用QueryOver、CriteriaHQL来说明: QueryOver查询Employee表中的所有Teacher: Session.QueryOver().Where(...a =>a.GetType() == typeof (Teacher)).List(); 这里需要注意的是,条件中使用的是a.GetType()==typeof(Teacher),但是不能使用a is

31620

NHibernate 缓存

一级缓存测试 一级缓存缓存无需配置, 默认支持, 因此, 在使用 session 查询对象, 如果仅仅是根据 id 加载指定的对象, 需要使用 session 的 Get 或 Load 方法, 这样可以充分利用...2、测试 Get 与 Load 方法 session 提供了 Get Load 两个方法, 这两个方法有什么区别呢?...注意: 如果查询时不想使用一级缓存, 可以 StatelessSession 对象, Session 对象用法一样, 只是该对象没有一级缓存。...cache.use_second_level_cache">true` true` 这三个属性的作用是显而易见的, 第一个是指定使用什么二级缓存的实现...也可以在实体类的 hbm 映射文件中配置使用二级缓存, 不过在 hibernate.cfg.xml 文件中统一配置是推荐的做法。

42810

使用VS2015Nhibernate实现与MySql数据库连接,实现增删改查操作

本文链接:https://blog.csdn.net/CJB_King/article/details/53456282 准备工具:VS2015(版本不限) ,Nhibernate包,MySql...先写一个简单的给你定义的数据库中添加一条元素的代码:(不使用Nhibernate的) 前提:先把该用的dll文件,添加到引用里面去不然,会连接不成功,之前下载的Connector/Net(选择.Net&...嗯,如果能够运行成功,说明我们的步骤都是正确的,这就是一个简单的测试,测试成功,说明我们的VS与MySql数据连接是没有任何问题的,只要把该引入的都引入了就不会报什么异常错误之类的,接下来将用C#代码...现在表中有两天信息了,现在我们使用代码对这两条信息进行操作,步骤如下: 1.打开VS2015新建一个项目,名字为APengChao,与数据库名字对应的话,看着也舒服一些,当然名字随意,想取什么就取什么,...帮助类,使用Nhibernate连接数据库,用来得到sessionFactory,然后使用sessionFactory里面的session去操作数据库,代码如下: using System; using

1.4K30

ORM for Net主流框架汇总与效率测试

今天研究的orm框架如下: 1.NHibernate(使用与介绍:http://www.cnblogs.com/stone_w/archive/2011/09/15/2177830.html) 2.iBatis...采用netframework 4.0 Web网站项目,使用Stopwatch进行执行时间统计,使用Parallel对象实现并发操作。...SubSonic 优点:删除查询效果很好,添加比较慢。 缺点:语法比较接近Linq,语法自成一派比较不满意。...NHibernate 优点:覆盖功能比较全,稳定性好,集成性能好,使用比较广泛,支持t-sqlhql语法。 缺点:配置比较多,比较麻烦,效率比较慢。 NBear 优点:配置最简单。...缺点:操作语法不成熟,不支持t-sql,使用起来不方便,已经很久没有更新了。 ps:大家根据测试的结果自行选择合适的框架。

89170

我的CMS开发记-3 只要是人就会犯错误,只要是软件就会有BUG,即使他是nhibernate

Sql语句语法错误。我靠,果然有错误,改改,再试?还是出错。郁闷了。打断点开始调试,确定我的代码没有错。我没错那谁错了?nhibernate??不会吧?...将nhibernate的引用移除,直接引用nhibernate的源码开始调试,没想到啊没想到,居然还真的被我给找出bug来了。     ...nhibernate处理access时,使用的是jetdriver这个方言。由于access的特殊性(sql语句做连接时,必须要用括号),于是在jetdriver里,对sql语句进行了处理。...queryCache[sqlString] = ret;             return ret;         } 这段的代码的意思呢,是取出from后面的部分,以对join语句进行access语法的特别加工...原来bug就在这里, 他在查找关键字时,是按照"from","where"这两个,但是,from,where这两个词必须要在头尾加上空格才能保证不会其他单词混淆。原文是没有空格的。

56180

C#——Nhibernate探索

类库拥有对应的XML,没找到具体使用该XML的方法。所以暂时不去理他。 NHibernate.pdb应该是没有用的。估计是作者忘记删除了。...nhibernate-configuration.xsdnhibernate-mapping.xsd两个文件暂时不知道要干什么用的。...一、建立了一个类库程序,引用Iesi.Collections.dllNHibernate.dll两个DLL。  接下来,我们开始建立持久化对象。...为什么说是探索之旅呢,因为,我也是首次配置Nhibernate,我平常更多的是使用Entity Framework。 文中使用了一些推断,猜测的词语。那是因为,真的是在推断的。...我并不清楚那几个点的原理含义,因为我没看Nhibernate的原代码。 虽然本文是讲述,配置Nhibernate;但我更想讲述的是,面对未知的框架入手学习使用的方法。

47230

NHibernate详解

什么NHibernateNHibernate 是一个基于.Net 的针对关系型数据库的对象持久化类库。...NHibernate 为你处理这些,远胜于你不得不写SQL去从数据库存取对象。你的代码仅仅对象关联,NHibernat 自动产生SQL语句,并确保对象提交到正确的表字段中去。...4.构建一个让NHibernate知道如何连接数据库的配置文件 5.使用NHibernate的API 第一步:写构建表的SQL 这里我们将使用的是一个非常简单的例子...我们将使用如下的一张User表(假定你已经设置好一个数据库—在的例子里我称它为NHibernate)。...如果你执意要NHiberante为你生成主键,你感兴趣于设定uuid.hexuuid.string(从文档中获取更多信息) 提示:如果你使用Visual Studio.Net 去编译的话,请将user.hbm.xml

54730

C# 数据操作系列 - 11 NHibernate 配置结构介绍

前言 今天是NHibernate的第二篇内容,通过上一篇的内容,我们初步了解了NHibernate的创建和使用。这一篇,我继续探索NHibernate背后的秘密。嗯,就是这样。 1....NHibernate通过ADO.NET 建立访问数据库的连接,然后封装了一个Transaction(事务)工厂一个Session工厂。...只要ISession关闭了,这些对象就可以被分离出来然后可以在应用层的任意地方使用。...这一节,将带领大家看一下NHibernate中我们常用的配置,因为配置项有很多,但一大部分通常情况都遇不到使用它的时候。...dialect 数据库方言,表示NHibernate连接的数据库是什么,该用哪种格式解析关系映射到数据库SQL语句 default_schema 默认的schema,用来设置连接字符串连接的数据库默认的

1.1K20

NHibernate总结

现在的项目中数据访问使用的是NHibernate的一个ORM框架,小弟也是在后期加入项目组,之前对NHibernate就一直没有接触过,所以一直在学习NHibernate,都是一些很基础的一些东西,写出来总结一下...请点击(http://www.cnblogs.com/lyj/archive/2008/10/10/1308267.html) NHibernate什么 NHibernate 是一个面向.NET 环境的对象...NHibernate不仅仅管理.NET 类到数据库表的映射(包括.NET 数据类型到SQL 数据类型的映射),还提供数据查询获取数据的方法,大幅度减少我们开发时人工使用SQLADO.NET处理数据的时间...开始使用NHibernate 我们亲自动手,一步一步实现一个NHibernate简单程序来,我只实现了简单的增删改查功能。...这个实例我编写了一个辅助类NHibernateHelper 用于创建ISessionFactory并配置ISessionFactory打开一个新的Session单线程的方法,之后在每个数据操作类可以使用这个辅助类创建

89440

NHibernate教程

一、NHibernate简介 在今日的企业环境中,把面向对象的软件关系数据库一起使用可能是相当麻烦、浪费时间的。NHibernate是一个面向.Net环境的对象/关系数据库映射工具。...由此可见,NHibernate不仅仅管理.Net类到数据库表的映射,还提供数据查询获取数据的方法。因此采用NHibernate,可以大幅度减少开发时人工使用SQL处理数据的时间。...NHibernate知道如何完成ORM映射的XML文件; 5.使用NHibernate的API来编程 三、NHibernate使用 1....两种方法要添加的配置信息是一样的,目标都是告诉NHbiernate使用什么样的数据库,使用哪个库,用户密码分别是什么。...这样情况下不能用软件来辅助产生对应的类XML,这是NHibernate中唯一需要费脑筋学的地方。

33110

ASP.NET Web API对OData的支持

微软基于EDM模型释出了:OData,这里也可以看出Entity Framework对于NHibernate这样的ORM的工具不同的战略考虑。...首先是,没有创建泛型客户端的途径,而这些API紧密联系,因为它不知道参数的顺序或者模式被使用的顺序。因为不能创建泛型客户端,你必须为每一个你希望暴露的API创建客户端。...取代创建客户端签名参数,我们问了如下的问题:“如果你将数据集作为源处理,并为最频繁使用的操作定义模式,像查询、分页、排序、新建、删除更新,服务接口因该是什么样子的?” 这也就导致OData的创建。...Hongmei指出的第一个场景是,使用AllowedQueryOptions属性,只允许包含$top$skip的查询。...Hongmei还演示了高级场景中的查询验证,如为$skip、$top、$orderby、$filter自定义默认验证逻辑,以及使用ODataQueryOptions来验证查询。

2.6K50

LinQ 查询表达式

操作方式使用了 LINQ,之前一直对 LINQ 的查询语法不太喜欢,这次使用之后,感觉比方法语法更容易接受,因此详细总结一下查询表达式的语法。 数据查询历来都表示为简单的字符串,没有编译时类型检查。...使用相同的基本查询表达式模式来查询转换 SQL 数据库、ADO .NET 数据集、XML 文档以及 .NET 集合中的数据。 从应用程序的角度来看,原始源数据的特定类型结构并不重要。...查询变量可以存储采用查询语法、方法语法或是两者的组合进行表示的查询。...子句 使用 orderby 子句可按升序或降序对结果进行排序。...join 子句 使用 join 子句可基于每个元素中指定的键之间的相等比较,将一个数据源中的元素与另一个数据源中的元素进行关联/或合并。在 LINQ 中,联接操作是对元素属于不同类型的对象序列执行。

1.8K20

Fluent NHibernate之旅(四)-- 关系(上)

RTM相对于RC版本来说,使用方法没有太大的变化,所以不做讲解。 我们后面的教程,会使用RTM版本来演示,希望大家能及时更新(点击下载最新版)。...够简单的吧,UserUserDetail是一对一关系,构建我们的实体类: public class User { public virtual int UserID { get; set; }...ID与User的ID是一致的,所以我们要使用Foregin来获取User的ID。...很多关联方法都是与NHibernate很类似的,比如Cascade,Cascade.All代表的是cascade="all",代表的是无论什么操作,都会同时操作关联对象。...NHibernate是不支持one-to-one的延迟加载的,我也不知道为什么,但我们可以婉转的进行延迟加载,老赵已经在他的文章“NHibernate中一对一关联的延迟加载”中提出了解决方案,大家可以看一下

1.2K60
领券