nhibernate-Nhibernate多表查询,不用遍历填充每一个值

问题描述

Nhibernate多表查询,不用遍历填充每一个值

有一个person类,里面有个status字段,保存的是人员状态。类型为int
还有一个baseinfo类,里面有name字段,用来保存status的中文如:在职/离职,还有一个value字段,与person类里面的status字段相对应,类型为int
这样做的目的是能够把一些基础数据进行维护。
我的问题是:用nhibernate查询后,如果返回person的List,如何将baseinfo中name字段的值,附加到List中每一个person的status值。
例如:
personList=[{name:'张三',sataus:"1"},
{name:'李四',sataus:"-1"},
{name:'王五',sataus:"1"}]
上面这个是利用nhibernate查出来的
而我想要的List是下面这个
personListNew=[{name:'张三',sataus:"1",statusName:'在职'},
{name:'李四',sataus:"-1",statusName:'离职'},
{name:'王五',sataus:"1",statusName:'在职'}]
我现在有的思路是遍历personList,从而得到新的personListNew。但是我想要更好的方法,大家有没有思路呢?

解决方案

已经解决,利用nhibernate的内置方法,使用hql来包装一个常用类
var queryString = "select Type from Vehicle";

IList vtslist = session.CreateSQLQuery(queryString).SetResultTransformer(Transformers.AliasToBean(new VehicleTrans().GetType())).List();
其中VehicleTrans就是我需要的那个形式,如果需要什么字段,直接改hql就可以了

时间: 2024-11-05 06:12:48

nhibernate-Nhibernate多表查询,不用遍历填充每一个值的相关文章

select-mysql数据表查询效率问题?

问题描述 mysql数据表查询效率问题? 比如一个表a有以下字段 a1(int自增主键),a2(varchar(10)),a3(datetime),a4(ntext) 把a表分成(由于考虑a4及占空间) afen表 a1(int自增主键),a2(varchar(10)),a3(datetime) afen1表 a1(int外键或加索引等),a4(ntext) 问以下两个查询 select a1,a2,a3 from a order by a3 desc; SELECT * from afen o

sql语句,判断一个值是否在一个表中代码怎么写

问题描述 sql语句,判断一个值是否在一个表中代码怎么写 判断一个值是否在一个表中代码怎么写,代码加上些注释,怕看不懂 解决方案 oracle语法 select * from A where not exists(select 1 from B where instr(',' || B.namelist || ',',a.name)>0; sql语法 select * from A where not exists(select 1 from B where charindex(a.name,'

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

在NHibernate中经常遇到继承与关系数据库的ORMapping的问题,我之前的一篇博客(http://www.cnblogs.com/studyzy/archive/2011/08/16/2140675.html)介绍了有3种常用的实现方式: Concrete Table Inheritance(具体表继承) Single Table Inheritance(单表继承) Class Table Inheritance(类表继承) 其中单表继承是我个人比较常用比较推荐的做法.使用单表继承可以

Nhibernate多表查询解决办法

概述: 在项目中应用NHibernate架构时,会经常遇到多表查询.因为项目上要用到,通过多天的查询总结了以下 两种解决方案. 解决方案: (1)使用HQL语句,然后把查询出的结果存入临时表中,然后再进行绑定. (2)使用select new OaxtJoinGlxt这种语法,根据查询的内容自己构建相应的实体类. 第一种方案实现具体过程: 我的需求如下: 我需要查询JkptOaxtOrganization实体类中的Orgid,及JkptGlxtOrganization实体类中的Orgname我需

[NHibernate]N+1 Select查询问题分析

目录 写在前面 文档与系列文章 N+1 Select查询问题分析 总结 写在前面 在前面的文章(延迟加载,立即加载)中都提到了N+1 Select的问题,总觉得理解的很不到位,也请大家原谅,这也是为什么单独将该问题拿出来做分析的原因.nhibernate的默认Lazy加载方式是解决N+1 select问题的一种方案,而我自身的理解是立即加载可以解决,完全的背道而驰了.写出那篇文章后,对这个问题,一直念念不忘,总觉得哪地方不对劲.由于我对问题的理解很不透彻,也同样造成你的误解,真的很抱歉. 文档与

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

OData是一个非常灵活的RESTful API,如果要做出强大的查询API,那么OData就强烈推荐了.http://www.odata.org/ OData的特点就是可以根据传入参数动态生成Entity Framework的查询,最终实现动态的SQL的查询.但是在项目有时我们并没有采用Entity Framework,而是采用的NHibernate,那么该怎么用OData呢? 经过一段时间的Google和研究,终于找到了一个好的方案. 在OData API查询时,用户前端是url跟参数,但是

关联数据表查询,不用表连接,不建立外键,如何查询出来

问题描述 关联数据表查询,不用表连接,不建立外键,如何查询出来 查询两个有关联的数据表,一个表是cate分类表,另一个是game游戏表,分类表的id=game表的cate_id 不用表连接,不建立外键,怎么将game表的数据和cate表的数据一一对应查出来.求答 解决方案 select game.*(select cate_name from cate where 分类表的id=game.cate_id) as 分类名 from game

Redis 为什么用跳表而不用平衡树

Redis 为什么用跳表而不用平衡树? 本文是<Redis内部数据结构详解>系列的第六篇.在本文中,我们围绕一个Redis的内部数据结构--skiplist展开讨论. Redis里面使用skiplist是为了实现sorted set这种对外的数据结构.sorted set提供的操作非常丰富,可以满足非常多的应用场景.这也意味着,sorted set相对来说实现比较复杂.同时,skiplist这种数据结构对于很多人来说都比较陌生,因为大部分学校里的算法课都没有对这种数据结构进行过详细的介绍.因此

mysql-msql的索引和表查询的操作

问题描述 msql的索引和表查询的操作 今天看了一下午的资料,感觉还是模糊的,就是加了索引之后,同样的查询语句会用时比之前短,但我新手明白为什么这样用, 而里面索引具体怎么实现的比较模糊,再有就是多个表之间怎么建立关系?就是查歌手表的歌手的id就能查到歌曲表,歌手信息表等多个相关表的信息?是外键?希望大家解答一下! 解决方案 索引列是你查询的时候的条件,这样这个条件对应的数据在索引中可以迅速的定位到最终的数据,因而不用在数据库整个表中遍历一个个查询 解决方案二: 那相当于一个指针?一个地址吗?