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

使用带有NHibernate命名查询的未映射类

首先,我们需要了解NHibernate命名查询和未映射类的概念。NHibernate是一个.NET平台的对象关系映射(ORM)框架,它允许开发人员将数据库表与.NET类和对象进行映射,从而更容易地处理数据库操作。命名查询是在映射文件中定义的一种查询,可以在代码中重复使用。未映射类是指那些没有映射到数据库表的类。

在使用带有NHibernate命名查询的未映射类时,开发人员可能会遇到一些问题。为了解决这些问题,我们需要了解以下几点:

  1. 未映射类的处理:NHibernate允许开发人员在查询中使用未映射的类,但需要在查询中显式指定要查询的列。这可以通过使用Projections和Transformers来实现。
  2. 命名查询的定义:命名查询可以在映射文件中定义,也可以在代码中定义。在定义命名查询时,需要指定查询的名称、查询语句、参数和返回类型。
  3. 命名查询的调用:在代码中,可以使用NHibernate的Session对象来执行命名查询。这可以通过调用Session的GetNamedQuery方法来实现。
  4. 查询结果的处理:命名查询的结果可以通过多种方式处理,例如将结果转换为列表、将结果转换为单个对象等。这可以通过使用NHibernate的QueryOver和Criteria API来实现。

总之,使用带有NHibernate命名查询的未映射类需要开发人员了解NHibernate的基本概念和使用方法,以及如何处理未映射的类和命名查询。在实际应用中,开发人员可以根据自己的需求和场景选择适当的方法和技术,以实现更高效、更灵活的数据库操作。

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

相关·内容

如何使用Fluent NhibernateAutomapping进行OR Mapping映射

由于在项目中使用NHibernate来作为ORMapping构建数据访问层,那么就必须要配置Object和DataTable映射。...使用Fluent NHibernate最大好处是降低了出错机会,因为Fluent Nhibernate配置是使用C#来编写,可以智能感知,而且还能编译,不像原始XML配置,写错了都不知道。...我们只需要定义好映射规则,就可以不对每个表和分别编写映射配置,而是按照规则进行自动Mapping工作。这样在修改class或者DataTable时,只需要修改和表即可,不需要再修改配置文件。...要做到Automapping,就一定要定义好严格命名规范,然后按照规范编写Automapping规则,实现自动化映射。...(比如CostCenter对应表COST_CENTER) 主键使用Id命名,表中主键使用表名+“_ID”命名方式。

1.1K10

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

表继承) 其中单表继承是我个人比较常用比较推荐做法。...使用单表继承可以不用Join多个表查询效率高,而且在Domain Model属性提示到父或者下降到子类时,数据库模型不用更改。...在NHibernate中经常会遇到通过父Repository来查询子类情况,比如现在有一个抽象Employee对象,下面有OfficeUser和Teacher两个具体对象,这两个对象都有其特有的属性...我们可以将OfficeUser和Teacher都保存到Employee表中,然后建立了一个EmployeeRepository,使用Employee作为Query入口,那么如果要查询Employee表中所有的...以上是以最简单了例子说明了如果通过父查询具体子类方法,实际项目中肯定比这个查询要复杂,但是只要记住了这三种查询要点,结合其他条件就可以写出NHibernate能够理解查询

32420

Nhibernate_nhibernate与ef区别

创建映射文件,以告诉NH怎样持久化这些属性. 4. 创建NH配置文件,以告诉NH怎样连接数据库. 5. 使用NH提供API....步骤3:编写映射文件(Mapping File) 现在我们有了数据库表和.Net,我们还需要告诉NH怎样在数据库和之间映射.这就需要映射文件了.最简捷(也是可维护性最好)方法就是为每一个编写一个映射文件...,如果你把命名为"XXX.hbm.xml"映射文件和XXX文件放在同一目录下,NH会很让 一切变得很轻松.这儿,我们User.hbm.xml可能会像这样: <?...驱动,连接到本地nhibernate数据库,并且使用提供用户和密码.还会有其他配置项,你可以参看文档....- 映射文件 æ app.config - 带有Ado.net连接信息配置文件(你也可以在代码中指定) æ 一个叫做user数据库表.

56030

Nhibernate_juan benet

在数据库中创建把.Net持久化对应表. 2. 创建需要被持久化.Net. 3. 创建映射文件,以告诉NH怎样持久化这些属性. 4....步骤3:编写映射文件(Mapping File) 现在我们有了数据库表和.Net,我们还需要告诉NH怎样在数据库和之间映射.这就需要映射文件了.最简捷(也是可维护性最好)方法就是为每一个编写一个映射文件...,如果你把命名为”XXX.hbm.xml”映射文件和XXX文件放在同一目录下,NH会很让 一切变得很轻松.这儿,我们User.hbm.xml可能会像这样: <?...驱动,连接到本地nhibernate数据库,并且使用提供用户和密码.还会有其他配置项,你可以参看文档....– 映射文件 æ app.config – 带有Ado.net连接信息配置文件(你也可以在代码中指定) æ 一个叫做user数据库表.

36050

盘点 .NET 比较流行开源ORM框架

支持 Join 查询、Union all 、Subquery 支持配置查询 支持 DbFirst 从数据库导入实体,或使用生成工具。...开源地址:https://github.com/dotnet/ef6 六、NHibernate(国外) NHibernate 是一个成熟开源对象关系映射器,适用于 .NET 框架。...(又名异步)(V6) 与严格修饰 POCO 或归属几乎 POCO 一起使用。 易于配置,包括开箱即用流畅配置。...通过使用 DynamicMethod 生成消除 Linq 和快速属性分配来获得出色性能。 查询语言是好 ole SQL。 包括一个低摩擦 SQL 构建器,使编写内联 SQL变得更加容易。...包括 T4 模板以自动为您生成 POCO 。(V5) 用于记录异常、安装值转换器和将列映射到没有属性属性挂钩。

3.9K41

NHibernate 缓存

一级缓存测试 一级缓存缓存无需配置, 默认支持, 因此, 在使用 session 查询对象, 如果仅仅是根据 id 加载指定对象, 需要使用 session Get 或 Load 方法, 这样可以充分利用...注意: 如果查询时不想使用一级缓存, 可以 StatelessSession 对象, 和 Session 对象用法一样, 只是该对象没有一级缓存。...也可以在实体 hbm 映射文件中配置使用二级缓存, 不过在 hibernate.cfg.xml 文件中统一配置是推荐做法。...,用来指定二级缓存区域名,对应于缓存实现一个命名缓存区域。...从二级缓存读/写数据 Refresh:向二级缓存写数据,想不从二级缓存读数据,通过在配置文件设置 cache.use_minimal_puts从数据库中读取数据时,强制二级缓存刷新 CacheRegion 给查询缓存指定了特定命名缓存区域

58811

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

之前提到NHibernate继承了Hibernate一些传统:使用XML文件进行配置,这一点也是备受争议。...NHibernate映射文件 对于NHibernate映射文件有个约定名字: .hbm.xml 这里先为大家介绍一下映射文件格式: 1.1 hibernate-mapping 说明 <hibernate-mapping...:可选项,默认是none,一种默认级联风格 auto-import:明确是否可以在查询使用非限定名。...assembly:指定映射对象所在assembly,一般情况指的是项目名称 namespace:所在命名空间 default-access:可选,默认是property,表示NHibernate读取数据列策略...接下来,让我们探索class如何映射。 1.2.1 id 任何一个映射都必须声明一个数据表主键,大多数也必须有一个唯一标示字段用来区分不同实例。

1.1K20

NHibernate学习笔记之一,Hello world!

NHibernate是一个面向.NET环境对象/关系数据库映射框架,主要应用在数据持久层,和其它ORM框架一样用来把对象模型表示对象映射到基于SQL关系模型数据结构中去。...;mapping表示映射NHibernateDemo.WebUI命名空间下所有类型,包含持久化以及对应映射文件所在应用程序集名称。...3、编写实体(POCO,Plain Old CLR Objects),映射文件包含POCO映射到一个或者多个数据库表元数据信息。User.cs文件如下所示。...持久化所有的public属性必须声明为virtual,否则映射不成功。...4、为POCO编写写一个数据库映射文件,其实User.hbm.xml映射文件包含了对象/关系映射(ORM)所需元数据。元数据包含持久化声明和属性到数据库映射

58320

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

先写一个简单给你定义数据库中添加一条元素代码:(不使用Nhibernate) 前提:先把该用dll文件,添加到引用里面去不然,会连接不成功,之前下载Connector/Net(选择.Net&...然后我们在工程下面新建两个文件夹:Model文件夹用来存放数据库表映射,还有一个Manger用来存放对数据库执行增删改查操作。...virtual int Age { get; set; }//表中年龄 } } 2.再在Modle文件下建立一个映射,名字为MapAPengChao,这个代码如下: using...帮助使用Nhibernate连接数据库,用来得到sessionFactory,然后使用sessionFactory里面的session去操作数据库,代码如下: using System; using...,用来进行增删改查操作,代码如下: 实现查询表中所有姓名操作: using System; using System.Collections.Generic; using System.Linq

1.4K30

NHibernate 缓存

一级缓存测试 一级缓存缓存无需配置, 默认支持, 因此, 在使用 session 查询对象, 如果仅仅是根据 id 加载指定对象, 需要使用 session Get 或 Load 方法, 这样可以充分利用...注意: 如果查询时不想使用一级缓存, 可以 StatelessSession 对象, 和 Session 对象用法一样, 只是该对象没有一级缓存。...也可以在实体 hbm 映射文件中配置使用二级缓存, 不过在 hibernate.cfg.xml 文件中统一配置是推荐做法。...,用来指定二级缓存区域名,对应于缓存实现一个命名缓存区域。...从二级缓存读/写数据 Refresh:向二级缓存写数据,想不从二级缓存读数据,通过在配置文件设置cache.use_minimal_puts从数据库中读取数据时,强制二级缓存刷新 CacheRegion 给查询缓存指定了特定命名缓存区域

43210

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

ORM框架:Object/Relation Mapping(对象/关系 映射缩写,易于理解模型化数据方法。简单说就是把数据库关系型数据类型转换为用对象型程序控制框架类型。...今天研究orm框架如下: 1.NHibernate(使用与介绍:http://www.cnblogs.com/stone_w/archive/2011/09/15/2177830.html) 2.iBatis...以下为10万条数据查询排行,单位为毫秒(ms)。...缺点:依赖代码生成器生成每个实体。 iBatis 优点: 效率比较高,尤其是非并发下效果很高,比较稳定。 缺点:配置文件比较多,t-sql在每个配置文件里面写,条件查询比较麻烦。...缺点:操作语法不成熟,不支持t-sql,使用起来不方便,已经很久没有更新了。 ps:大家根据测试结果自行选择合适框架。

90370

C#——Nhibernate探索

这里有两个库;可以分析得出,这两个库是要被引用库拥有对应XML,没找到具体使用该XML方法。所以暂时不去理他。 NHibernate.pdb应该是没有用。估计是作者忘记删除了。...但看到.xsd文件,第一时间反应,他们应该是用来帮助开发者,快速生成配置文件用。为了保险起见,我们上网查询一下。 查询结果: 查询结果是,他们俩是【文件智能提示功能】用。...上网调查后,发现Nhibernate有Castle框架、LinFu框架、Spring.Net三种。 看起来很复杂,文章有很多,写又很复杂,于是我放弃调查,直接尝试使用,首先第一步,直接引用库。...这句话意思是,映射我创建那个库。 我推断,Nherbinate是读这个配置文件,然后到这个程序集里,反射查询那些poco对象。...为什么说是探索之旅呢,因为,我也是首次配置Nhibernate,我平常更多使用Entity Framework。 文中使用了一些推断,猜测词语。那是因为,真的是在推断

47930

NHibernate总结

NHibernate不仅仅管理.NET 到数据库表映射(包括.NET 数据类型到SQL 数据类型映射),还提供数据查询和获取数据方法,大幅度减少我们开发时人工使用SQL和ADO.NET处理数据时间...封装Nhibernate底层操作,People.cs为实体,People.hbm.xml为映射文件(把数据库表People映射到实体People)。...这个实例我编写了一个辅助NHibernateHelper 用于创建ISessionFactory并配置ISessionFactory和打开一个新Session单线程方法,之后在每个数据操作可以使用这个辅助创建...virtual,要不然会报错 (4)     下面我们开始为People实体进行数据库表映射配置People.hbm.xml NHibernate要知道怎样去加载和存储持久化对象。...这正是NHibernate映射文件发挥作用地方。映射文件包含了对象/关系映射所需元数据。元数据包含持久化声明和属性到数据库映射

90340

NHibernate详解

开发过程: 1.新建一个将要持久化.Net对象表 2.构建一个需要被持久化.Net 3.构建一个可以让NHibernate知道如何持久化对象属性映射文件...第三步:写映射文件 现在我们有数据表和需要去映射.Net。我们需要一种方式去让NHibernate知道如何从一个映射到另一个。这个任务依赖于映射文件来完成。...最易于管理办法是为每一个写一个映射文件,如果你命名它是YourObject.hbm.xml 并且把它放在和同一个目录里,NHiberante将会使得事情简单起来。...第一个有趣标签是class。这里我们将映射类型名称(名,装配件)到我们数据库中User表,这里和Hibernate有一点点不同。你将不得不告诉NHibernate从何处提取对象。...映射文件将成为装配件一部分。更详细细节重点将在后面展示。 提示:如果你仅仅是改变映射文件,你不能使用build 而应该Rebuild项目。

59230

NHibernate教程

NHibernate是一个面向.Net环境对象/关系数据库映射工具。...NHibernate除了能将一张表映射为一个对象,还可以将表间关系变为对象属性。例如学生和课程间多对多关系就可以转化为学生一个课程集合属性。...由此可见,NHibernate不仅仅管理.Net到数据库表映射,还提供数据查询和获取数据方法。因此采用NHibernate,可以大幅度减少开发时人工使用SQL处理数据时间。...二、NHibernate使用步骤 1.为系统引入NHibernate库,并且配置NHibernate; 2.新建一个将要持久化.Net对象表; 3.构建一个需要被持久化.Net; 4.构建一个可以让...NHibernate知道如何完成ORM映射XML文件; 5.使用NHibernateAPI来编程 三、NHibernate使用 1.

33810
领券