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

如何在NHibernate条件查询中截取浮点值?

在NHibernate条件查询中截取浮点值,可以使用NHibernate的投影查询(Projection)来实现。投影查询可以选择查询结果中的特定字段,并对其进行处理。

首先,需要使用NHibernate的Criteria API来构建查询条件。然后,使用Projection的Projections.Property方法选择需要截取的浮点字段,并使用Projections.SqlProjection方法来截取浮点值。

以下是一个示例代码:

代码语言:txt
复制
using NHibernate;
using NHibernate.Criterion;
using NHibernate.Transform;

// 创建一个Criteria查询
var session = sessionFactory.OpenSession();
var criteria = session.CreateCriteria<Entity>();

// 添加查询条件
criteria.Add(Restrictions.Eq("SomeProperty", someValue));

// 使用Projection进行投影查询
criteria.SetProjection(
    Projections.SqlProjection(
        "CAST(SomeFloatProperty AS DECIMAL(10, 2)) AS TruncatedFloat",
        new[] { "TruncatedFloat" },
        new[] { NHibernateUtil.Decimal }
    )
);

// 设置结果转换器
criteria.SetResultTransformer(Transformers.AliasToBean<Entity>());

// 执行查询
var result = criteria.List<Entity>();

在上述代码中,我们使用了Projections.SqlProjection方法来截取浮点值。其中,第一个参数是一个SQL语句,用于将浮点字段转换为截取后的浮点值。第二个参数是一个字符串数组,用于指定投影查询的结果字段名。第三个参数是一个NHibernate的数据类型,用于指定结果字段的数据类型。

需要注意的是,上述代码中的Entity是一个实体类,表示查询结果的映射对象。你需要根据自己的实际情况来替换为相应的实体类。

关于NHibernate的条件查询和投影查询的更多详细信息,你可以参考腾讯云的NHibernate文档:NHibernate文档

请注意,以上答案仅供参考,具体实现方式可能因实际情况而异。

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

相关·内容

何在 SQL 查找重复? GROUP BY 和 HAVING 查询示例教程

如果您想知道如何在查找重复,那么您可以在 SQL 中使用 GROUP BY 和 HAVING 子句。 使用 group by 您可以创建组,如果您的组有超过 1 个元素,则意味着它是重复的。...您需要编写一个查询来查找所有重复。...: +---------+ | Email | +---------+ | a@b.com | +---------+ 用于查找列重复的 SQL 查询 在 SQL 查询解决这个问题的三种方法,...这是查找重复电子邮件的 SQL 查询: SELECT Email FROM Person GROUP BY Email HAVING COUNT(Email) > 1 使用self-join在列查找重复...= b.Id 使用带有 EXISTS 的子查询查找重复的电子邮件: 您甚至可以使用相关子查询来解决这个问题。 在相关子查询,对外部查询的每条记录执行内部查询

14.5K10
  • mysql字符串等值查询条件字段末尾有空格也能查到数据问题

    `) VALUES ('duduu '); #尾部带两个空格 INSERT INTO `student_info` (`name`) VALUES ('duduu '); 需要注意的是,name字段分别是...,这个倒不是我们关注的重点,我们关注等值查询是否可以正常查询出来: #不带空格的duduu mysql> select * from student_info where name='duduu'; +...,但是空格放在后面时,等值查询并不符合我们的预期。...但是这个规则不包括LIKE这样的模糊查询语句。图中代码示例说明的是使用=这样的等值查询时会自动忽略后面的空格,'Jones'和'Jones '都可以被查询到,但是Like需要精准匹配上空格才行。...不会自动截断尾部的空格,会按原值存储; MySQL的CHAR、VARCHAR、TEXT等字符串字段在等值比较("=")时,基于PAD SPACE校对规则,会忽略掉尾部的空格; 如果想要精确查询就不能用等值查询

    79910

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

    NHibernate中经常会遇到通过父类的Repository来查询子类的情况,比如现在有一个抽象的Employee对象,下面有OfficeUser和Teacher两个具体的对象,这两个对象都有其特有的属性...下面分别用QueryOver、Criteria和HQL来说明: QueryOver查询Employee表的所有Teacher: Session.QueryOver().Where(...Teacher,虽然这在C#是一回事,但是NHibernate会对其理解不一样,所以必须这么写,否则查询不出来。...HQL查询Employee表的所有Teacher: var cri = Session.CreateQuery("from Employee where Type='Teacher'");  var...以上是以最简单了例子说明了如果通过父类查询具体的子类的方法,实际项目中肯定比这个查询要复杂,但是只要记住了这三种查询的要点,结合其他条件就可以写出NHibernate能够理解的查询

    35020

    Nhibernate_nhibernate与ef区别

    NHibernate用于把你的.Net对象持久化到底层的关系数据库.你完全不用自己编写Sql语句去操作这些对象,NH会代替你做.你的代码里面只需要关心这些对象,NH生成sql语句并能为你取到正确的东西...开发过程 HNibernate将会有一些工具帮助你,:生成schema,根据映射文件(Mapping file)生成类,并更新schema(一个新开发者的建议).然而,在本文档,前提是你已经手动的数据库的创建喝...name"属性就是我们写的.Net类的属性,column属性就是在数据库与'Net类属性对应的字段名.type属性是可选的(如果你没有标明,NH会给出一个最适合的),但是推荐的做法是带上这个属性....hibernate用户会注意到,在type属性里,我们给出了长度,这是因为ADO.NET需要这样做....更好的是,你可以从数据库查询到一个System.Collections.IList: IList userList = session.CreateCriteria(typeof(User)).List

    59330

    Nhibernate_juan benet

    开发过程 HNibernate将会有一些工具帮助你,:生成schema,根据映射文件(Mapping file)生成类,并更新schema(一个新开发者的建议).然而,在本文档,前提是你已经手动的数据库的创建喝...让我们暂时跳过”id” tag,先说property节点.”name”属性就是我们写的.Net类的属性,column属性就是在数据库与’Net类属性对应的字段名.type属性是可选的(如果你没有标明...,NH会给出一个最适合的),但是推荐的做法是带上这个属性.hibernate用户会注意到,在type属性里,我们给出了长度,这是因为ADO.NET需要这样做....更好的是,你可以从数据库查询到一个System.Collections.IList: IList userList = session.CreateCriteria(typeof(User)).List...发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

    37750

    C# 数据操作系列 - 12 NHibernate的增删改查

    ,默认情况从Property 读取 default-lazy:可选的,默认是true,是否启动延迟加载 1.2 class的配置 一般情况下,class节点只需要指定name和table就可以了。...1.2.3 many-to-one 在Nhibernate,多对一的配置是在一的一端,表示该类有一个外键导航。...通常情况下,查询需要结合实际业务来进行开发,当然为了通用,我在这里选择给调用方开放一个查询对象: public IQueryable IqQueryable() { return Session.Query...(); } 其中 IQueryable是一个接口,表示这是一个可查询对象,通过Linq可以快捷的查询。...不过在本篇内容完结之前,先补充一个NHibernate的SqlDialect选: 数据库 Dialect 备注 DB2 NHibernate.Dialect.DB2Dialect DB2 for iSeries

    1.1K20

    SQL Server字符串左匹配

    使用左匹配的好处是可以使用到SQL Server对该字段建立的索引,使得查询效率很高,但是不好的SQL语句仍然会导致索引无法使用。...假设我们现在有个表YCMRSALE,其中有个字段MATNR存储了料号信息,如果我们要从这个表查询出以AB开头的料号,如果使用NHibernate,那么我们常用的写法有: //QueryOver的写法...: where ycmrsale0_.Matnr like 'AB%' 如果使用EntityFramework,那么查询的C#代码也和NHibernate类似: var result = bwEntities.YCMRSALEs.Select...但是如果用NHibernate就要麻烦点了,我们必须要判断用户输入的字符串里面是否有特殊转移符,如果有,那么就需要进行替换,而且C#查询语句也有所不同。...end else begin set @result+=@c; end set @i+=1; end return @result end 然后在查询调用这个自定义的函数即可

    72310

    让OData和NHibernate结合进行动态查询

    http://www.odata.org/ OData的特点就是可以根据传入参数动态生成Entity Framework的查询,最终实现动态的SQL的查询。...在OData API查询时,用户前端是url跟参数,但是在服务器端,我们是接收到的是一个ODataQueryOptions对象,其实我们需要做的就是把这个对象进行解析,生成NHibernate能够理解的查询形式.../NHibernateFilterBinder.cs Filter和OrderBy属性都会被转换成HQL,然后我们就需要进行NHibernate查询了。...,我们应该会有两个查询,一个是查询满足条件的数据总条数,另一个是返回当前页的数据集。...      {            this.TotalCount = count;            this.ResultSet = list;        }    } 然后在Controller返回

    40410

    NHibernate学习笔记之一,Hello world!

    2、新建项目并添加引用,将NHibernate-3.3.0.GA-bin的“Iesi.Collections.dll”与“NHibernate”引用到项目中,如图2所示复制Configuration_Templates...文件夹的对应数据库配置文件,这里使用MSSQL,所以复制“MSSQL.cfg.xml”,并对NHibernate的配置信息适当修改 。...否则会报错“xxx is not mapped”,如图3所示具体方法是:选择User.hbm.xml文件->属性->生成操作,设置这个属性的为“嵌入的资源” 图3 5、定义NHibernateHelper...的帮助类,Isession是NHibernate的工作单元,它是一个持久化管理器,我们通过ISession来从数据库存取数据。.../事务开始                 ITransaction transaction = session.BeginTransaction();                 //执行HQL查询

    60020

    2022年了有哪些值得推荐的.NET ORM框架?

    EntityFramework.Exceptions - 当您的SQL查询违反SqlServer,MySql或PostgreSQL的数据库约束时,请对EntityFrameworkCore使用类型化的异常处理...NHibernate社区网站 - https://nhibernate.info GitHub地址:https://github.com/nhibernate/nhibernate-core SmartSql...SmartSql将管理你的 SQL ,并且通过筛选标签来维护本来你在代码层面的各种条件判断,使你的代码更加优美。 主要特点:简洁、高效、高性能、扩展性、监控、渐进式开发!...PetaPoco 是首选的微 ORM,也是任何体面的开发人员工具包必不可少的实用程序。 主要特点: 与Dapper一样,它很快,因为它使用动态方法生成 (MSIL) 将列分配给属性。...这种方法更容易推理您的数据访问,从而清楚地知道什么 SQL 在什么时间执行,同时减轻意外行为、隐式 N+1 查询和重对象关系映射器 (ORM) 普遍存在的泄漏数据访问。

    5.9K11

    Python笔记之基本数据类型

    等号(=)运算符左边是一个变量名,等号(=)运算符右边是存储在变量。...内置的 type() 函数和 isinstance()函数可以用来查询变量所指的对象类型。 两个函数的区别: type()不会认为子类是一种父类类型。...4、在混合计算时,Python会把整型转换成为浮点数 String(字符串) Python的字符串用单引号 ' 或双引号 " 括起来,同时使用反斜杠 \ 转义特殊字符。...字符串的截取的语法格式如下: 变量[头下标:尾下标] 索引以 0 为开始,-1 为从末尾的开始位置。 string的使用测试: #!...字典是一种映射类型,字典用 { } 标识,它是一个无序的键(key) : (value) 的集合。 键(key)必须使用不可变类型。 在同一个字典,键(key)必须是唯一的。

    48310

    2022年了有哪些值得推荐的.NET ORM框架?

    EntityFramework.Exceptions - 当您的SQL查询违反SqlServer,MySql或PostgreSQL的数据库约束时,请对EntityFrameworkCore使用类型化的异常处理...NHibernate社区网站 - https://nhibernate.info GitHub地址:https://github.com/nhibernate/nhibernate-core SmartSql...SmartSql将管理你的 SQL ,并且通过筛选标签来维护本来你在代码层面的各种条件判断,使你的代码更加优美。 主要特点:简洁、高效、高性能、扩展性、监控、渐进式开发!...PetaPoco 是首选的微 ORM,也是任何体面的开发人员工具包必不可少的实用程序。 主要特点: 与Dapper一样,它很快,因为它使用动态方法生成 (MSIL) 将列分配给属性。...这种方法更容易推理您的数据访问,从而清楚地知道什么 SQL 在什么时间执行,同时减轻意外行为、隐式 N+1 查询和重对象关系映射器 (ORM) 普遍存在的泄漏数据访问。

    3.8K20

    NHibernate实践与模式

    NHibernate实践与模式 NHibernate是一款非常优秀的O/R mapping的开源框架,再还没有.net的时候它已经存在于java环境。...,class文件),支持一对多,多对一,多对多的关系,默认生成对这些表的CURD操作,包括多表脊联操作(select,insert,update,delete),也可以通过xml文件的配置作自定义的查询...CURD的操作语句可以从源代码看,它是生成的是参数形势的sql脚本并且支持特别的参数,,oracle的to_date,to_char等; 从上图可以看出实现了数据库的无关性,开发人员无须关心底层的数据库类型...开发步骤 一般我们是在先有数据库表结构的情况下,一层一层往上写,先创建数据库表,然后写数据库访问层的代码(可以通过一些通用的ado.net类库完成 Enterpriselibrary),接下来开始编写业务曾代码...然后再去创建数据库表,和UI的部分; 我还是按在有数据表的情况下如何用NHibernate作开发 1.用MyGeneration创建实体类和mapping文件选择NHibernate lujan99 1.06

    81240

    MongoDB查询(数组、内嵌文档和$where)

    上篇主要介绍了一些基本的查询条件操作符的使用,主要针对的是一些单,我们这次来讲讲如何查询文档内的数组和嵌入文档,并讲一下复杂查询"$where"。...【查询数组】 查询数组很容易,对于数组,我们可以这样理解:数组每一个元素都是这个键值对键的一个有效,如下面的例子:我们要查询出售apple的水果店: ? 我们发现只要包含苹果的数组都能被查询出来。...我们看,使用“$all”对数组内元素的顺序没有要求,只要全部包含的数组都能查询出来。数组查询也可以使用精确匹配的方式,即查询条件文档中键值对的也是数组,: ?...“$slice”也可以从后面截取,用复数即可,-1表明截取最后一个;还可以截取中间部分,[2,3],即跳过前两个,截取3个,如果剩余不足3个,就全部返回! ?...利用“点表示法”来查询内嵌文档,这也约束了在插入文档时,任何键都不能包含“.” !! 当内嵌文档变得复杂后,键的为内嵌文档的数组,这种内嵌文档的匹配需要一些技巧,如下例: ?

    6.1K20
    领券