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

NHibernate总结

NHibernate不仅仅管理.NET 到数据库映射(包括.NET 数据类型到SQL 数据类型映射),还提供数据查询和获取数据方法,大幅度减少我们开发时人工使用SQL和ADO.NET处理数据时间...封装Nhibernate底层操作,People.cs为实体,People.hbm.xml为映射文件(把数据库People映射到实体People)。...virtual,要不然会报错 (4)     下面我们开始为People实体进行数据库映射配置People.hbm.xml NHibernate要知道怎样去加载和存储持久化对象。...“内容”,这里需要修改为“嵌入资源”生成,因为NHibernate是通过查找程序集中资源文件映射实体。...我们可以在People.hbm.xml点击右键选择属性修改该文件生成操作 (5)     NHData.cs对库People进行增删改查 现在完事具备只欠东风了,开始我们数据库CRUD操作,在看该文件代码

92540
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Fluent NHibernate之旅二--Entity Mapping

    Fluent方式:或许你会觉得我们用了配置文件进行映射,相当简单,想怎么配就可以了,但实际用下来,我还是更喜欢Fluent映射方式,映射代码如下: public class ProductMap :...,然后在构造方法中完成映射方法,就能完成传统方式映射了。...回答是当然需要,因为我们这里属性名与主键名是相同,所以没有进行设置,如果你数据库主键名是ID,这里我们只需要Id(m => m.ProductID).ColumnName(“ID”),你可以看到上述映射中...hbm.xml文件,自己再看一篇,看看NHibernate映射方式,所以是非常好一个方法,我有时候做映射时候,遇到问题都会生成出来,随时查看问题所在,所以说是非常有用一个方法,而且你可以把你映射文件直接用到...传统方式映射,我是看了生成文件,也不是很复杂,而且我觉得生成文件比我自己写还要标准,呵呵。顺便贴一下吧。

    1K90

    NHibernate教程

    NHibernate除了能将一张映射为一个对象,还可以将间关系变为对象属性。例如学生和课程间对多关系就可以转化为学生一个课程集合属性。...由此可见,NHibernate不仅仅管理.Net到数据库映射,还提供数据查询和获取数据方法。因此采用NHibernate,可以大幅度减少开发时人工使用SQL处理数据时间。...二、NHibernate使用步骤 1.为系统引入NHibernate库,并且配置NHibernate; 2.新建一个将要持久化.Net对象; 3.构建一个需要被持久化.Net; 4.构建一个可以让...创建.Net和与其对应XML文件 (1) 情况 情况就是指该没有和其他有关联情况。这样情况下,可以用软件来辅助产生和对应XML文件。...使用NHibernateAPI进行编程 数据库编程不外乎“添加”、“删除”、“更新”,看看NHibernate是如何实现这三种操作吧。

    36910

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

    Nhibernate包来实现一个很简单对数据增删改查操作,这一次需要用到我们之前下载Nhibernate包里面的文件,全部dll文件引入之后,“引用”下面应该是这样: ?...然后我们在工程下面新建两个文件夹:Model文件夹用来存放数据库映射,还有一个Manger用来存放对数据库执行增删改查操作。...我们在Model文件下新建一个名字为APengPhao,这个刚好也是和数据库名相同,请看这个代码: using System; using System.Collections.Generic...virtual int Age { get; set; }//年龄 } } 2.再在Modle文件下建立一个映射,名字为MapAPengChao,这个代码如下: using...,用来进行增删改查操作,代码如下: 实现查询中所有姓名操作: using System; using System.Collections.Generic; using System.Linq

    1.4K30

    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)所需元数据。元数据包含持久化声明和属性到数据库映射

    60020

    NHibernate实践与模式

    下面我们先看一下它框架 工作原理 将数据库结构映射成实体(xml-mapping文件,实体 ,class文件),支持一对对一,关系,默认生成对这些CURD操作,包括多表脊联操作...CURD操作语句可以从源代码看,它是生成是参数形势sql脚本并且支持特别的参数,如,oracleto_date,to_char等; 从上图可以看出实现了数据库无关性,开发人员无须关心底层数据库类型...MyGeneration是一款开源代码生成工具,它模块更新比较快而且相对于一些开源项目支持比较多,所以我选它,而没有选择codesmith。...开发步骤 一般我们是在先有数据库结构情况下,一层一层往上写,先创建数据库,然后写数据库访问层代码(可以通过一些通用ado.net库完成如 Enterpriselibrary),接下来开始编写业务曾代码...然后再去创建数据库,和UI部分; 我还是按在有数据情况下如何用NHibernate作开发 1.用MyGeneration创建实体和mapping文件选择NHibernate lujan99 1.06

    81240

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

    我们只需要定义好映射规则,就可以不对每个分别编写映射配置,而是按照规则进行自动Mapping工作。这样在修改class或者DataTable时,只需要修改即可,不需要再修改配置文件。...(比如CostCenter中有public virtual long Id{get;set;},对应列COST_CENTER_ID) 对于一对关系,使用父方名作为属性名,中使用父主键列名作为对应外键列列名...对于关系,把两个对应名进行排序,将小排前面,然后将两个名连接起来,中间使用“_”分割。...IIdConvention接口,另外我们采用是Hilo值主键生成方式,使用一个HIBERNATE_UNIQUE_KEY存储每个流水。...TYPE列 } } 然后就是关于DiscriminateColumn中值如何映射成对应Subclass,需要实现ISubclassConvention接口,代码如下: public class

    1.1K10

    第2篇:数据库关系建模

    中每个值都必须为值; d. 同一列中所有值都必须属于同一个域; e. 行/列顺序无关 5. 主码(primary key) 每个关系必须要有一个主码(可含列),用来唯一标识中各行记录。...ER图是拿出去和别人谈需求,要求各方人员都能看得懂。而关系涉及到了过多实现细节,比如:要给联系/多值属性等建一张,要设置外码,各种复合主码等。...因此ER模型在整个开发流程(如物理模型建模,甚至前端开发)中是都会用到,不能认为ER模型转换到逻辑模型后就可以扔一边了。 小结 本文逻辑关系都是利用建模工具直接由ER图生成。...这确实很方便,但那些系统自动增加字段和命名则需要根据实际情况进行调整。 逻辑模型设计好后,就可以开始着手数据库物理实现了。...数据库物理实现也被称为物理模型建模,这个阶段不但需要参照逻辑模型,还应当参照ER图。

    1.6K61

    Nhibernate_nhibernate与ef区别

    NHibernate用于把你.Net对象持久化到底层关系数据库中.你完全不用自己编写Sql语句去操作这些对象,NH会代替你做.你代码里面只需要关心这些对象,NH生成sql语句并能为你取到正确东西...开发过程 HNibernate将会有一些工具帮助你,如:生成schema,根据映射文件(Mapping file)生成,并更新schema(一个新开发者建议).然而,在本文档中,前提是你已经手动数据库创建喝...步骤1:创建数据库 我们正在做是一个非常简单NH示例.在这个例子里面,我们实现一个基本用户管理子系统.我们将会使用一个user(sql server 2000): use NHibernate...步骤3:编写映射文件(Mapping File) 现在我们有了数据库和.Net,我们还需要告诉NH怎样在数据库和之间映射.这就需要映射文件了.最简捷(也是可维护性最好)方法就是为每一个编写一个映射文件...- 映射文件 æ app.config - 带有Ado.net连接信息配置文件(你也可以在代码中指定) æ 一个叫做user数据库.

    59330

    NHibernate详解

    NHibernate 为你处理这些,远胜于你不得不写SQL去从数据库存取对象。你代码仅仅和对象关联,NHibernat 自动产生SQL语句,并确保对象提交到正确和字段中去。...开发过程: 1.新建一个将要持久化.Net对象 2.构建一个需要被持久化.Net 3.构建一个可以让NHibernate知道如何持久化对象属性映射文件...第三步:写映射文件 现在我们有数据和需要去映射.Net。我们需要一种方式去让NHibernate知道如何从一个映射到另一个。这个任务依赖于映射文件来完成。...第一个有趣标签是class。这里我们将映射类型名称(名,装配件)到我们数据库中User,这里和Hibernate有一点点不同。你将不得不告诉NHibernate从何处提取对象。...连接配置信息(如果你愿意,你可以在代码实现)。

    68730

    NHibernate 代码映射实体

    NHibernate 代码映射实体 关于代码映射 NHibernate 3.2 自带了代码映射机制, 作为 xml 映射之外一种映射方式, 由于推出时间比较晚, 所以资料相对比较少, 而且与社区版...下面就通过一个实例来说明怎么使用 NHibernate 自带代码映射。 实体关系 要映射关系图如下: ?...public ProductMapping() { // 此处添加映射代码 } } 映射到数据 使用 Table 函数将映射到制定数据: Table("product")...; 标识映射 使用 Id 函数映射标识, NHibernate 提供了内置工具来简化代码: Id( m => m.Id, map => { map.Column("id...Store 与 Product 两个之间是映射映射代码如下: Store Products 属性: Bag( m => m.Products, map => {

    90510

    Nhibernate入门与demo

    通俗讲,就是我们操作实体,然后让ORM框架自动映射到数据库中。      而Nhibernate就是:.Net环境下实现ORM技术一个框架!     ...先看项目整体图,作为初学demo 没有层次,没有优化,只是作为入门一个简单介绍!      第一步:设计数据库中。建立一个User。...DateTime LastTimeLogOn { get; set; } } }      第三步:创建User映射文件...然后对应数据库名。设置延迟加载为false。具体可以参考Nhibernate官方文档。 3、一定要将这个文件属性:生成操作设置为嵌入资源!     ...Nhibernate不只是这些!搭载Spring.Net  Nhibernate能做更多!而且代码会更加优美!      源码下载:NhibernateDemo.zip

    35530

    Nhibernate_juan benet

    NHibernate用于把你.Net对象持久化到底层关系数据库中.你完全不用自己编写Sql语句去操作这些对象,NH会代替你做.你代码里面只需要关心这些对象,NH生成sql语句并能为你取到正确东西...在数据库中创建把.Net持久化对应. 2. 创建需要被持久化.Net. 3. 创建映射文件,以告诉NH怎样持久化这些属性. 4....步骤1:创建数据库 我们正在做是一个非常简单NH示例.在这个例子里面,我们实现一个基本用户管理子系统.我们将会使用一个user(sql server 2000): use NHibernate...步骤3:编写映射文件(Mapping File) 现在我们有了数据库和.Net,我们还需要告诉NH怎样在数据库和之间映射.这就需要映射文件了.最简捷(也是可维护性最好)方法就是为每一个编写一个映射文件...– 映射文件 æ app.config – 带有Ado.net连接信息配置文件(你也可以在代码中指定) æ 一个叫做user数据库.

    37750

    NHibernate 映射数据更新

    NHibernate 映射数据更新 最近在用 NHibernate更新时突然发现 NHibernate 更新策略很差, 对对多关系更新居然是先全部删除再插入全部数据, 感觉非常奇怪..., 再添加一个新角色, NHibernate 生成 SQL 语句如下(仅包含对关系 User_Role 操作): DELETE FROM [User_Role] WHERE [UserId] =...Tip: Use set for many-to-many associations 发现了解决方案, 将映射 bag 改为用 set , 问题终于得到了解决, 改过后映射如下: Set(...Set 之后, 上面的测试代码生成 SQL 如下: DELETE FROM [User_Role] WHERE [UserId] = @p0 AND [RoleId] = @p1;@p0 = 1 [...不只是, 如果你集合需要更新, NHibernate 推荐是: 19.5.2.

    94910

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

    下面推荐10个主流比较流行ORM框架,都是开源项目: 一、SqlSugar(国内) 支持SqlServer、MySql、PgSql和Oracle插入blukcopy 分大数据自处理 支持租户、库事务...EF有三种使用场景: 1、从数据库生成Class。 2、由实体生成数据库结构。 3、通过数据库可视化设计器设计数据库,同时生成实体。...开源地址:https://github.com/dotnet/ef6 六、NHibernate(国外) NHibernate 是一个成熟开源对象关系映射器,适用于 .NET 框架。...通过使用 DynamicMethod 生成消除 Linq 和快速属性分配来获得出色性能。 查询语言是好 ole SQL。 包括一个低摩擦 SQL 构建器,使编写内联 SQL变得更加容易。...包括 T4 模板以自动为您生成 POCO 。(V5) 用于记录异常、安装值转换器和将列映射到没有属性属性挂钩。

    4.1K42

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

    NHibernate映射文件 对于NHibernate映射文件有个约定名字: .hbm.xml 这里先为大家介绍一下映射文件格式: 1.1 hibernate-mapping 说明 <hibernate-mapping...接下来,让我们探索class如何映射。 1.2.1 id 任何一个映射都必须声明一个数据主键,大多数也必须有一个唯一标示字段用来区分不同实例。..." type="typename" /> name :属性名 column:对应数据列名 type:数据库中类型 1.2.3 many-to-one 在Nhibernate...中,对一配置是在一一端,表示该类有一个外键导航。...,不同地方在于一对一需要在双方映射关系里均要维护,在有外键/实体中 添加 constrained=“true”。

    1.1K20

    2022 最新 MyBatis 面试题

    3、MyBatis 框架缺点: 1、 SQL 语句编写工作量较大, 尤其当字段、 关联多时, 对开发人员编 写 SQL 语句功底有一定要求。...但是灵活前提是 mybatis 无法做到数据库无关性, 如果需要实现支持多种数据库软件 ,则 需要自定义套 sql 映射文件 ,工 作量大 。...7、当实体属性名和字段名不一样 ,怎么办 ? 第 1 种 : 通过在查询 sql 语句中定义字段名别名 , 让字段名别名和实体 属性名一致。...-- 实体字段名和数据字段名映射 --> ...联合查询是几个联合查询,只查询一次 ,通过 在 resultMap 里面的 collection 节点配置一对就可以完成; 嵌套查询是先查 一个,根据这个表里面的 结果外 键 id,去再另外一个表里面查询数据

    14210

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

    EF Core 可用作对象关系映射程序 (O/RM),这可以实现以下两点: 使 .NET 开发人员能够使用 .NET 对象处理数据库。 无需再像通常那样编写大部分数据访问代码。...主要特点: 支持 CodeFirst 模式,即便使用 Access 数据库也支持数据迁移; 支持 DbFirst 模式,支持从数据库导入实体,或使用实体生成工具生成实体; 支持 深入类型映射,比如...PgSql 数组类型等; 支持 丰富表达式函数,以及灵活自定义解析; 支持 导航属性一对贪婪加载,以及延时加载; 支持 读写分离、分分库、过滤器、乐观锁、悲观锁; 支持 MySql/...  NHibernate 是一个成熟开源对象关系映射器,适用于 .NET 框架。...与ActiveRecord一样,它支持对象和数据库之间密切关系。 与SubSonic一样,它支持使用 T4 模板生成 poco (仅限 V5)。

    5.9K11

    mybatis和hibernate以及jpa区别_hibernate sql

    2、Hibernate理解 Hibernate是一个开放源代码对象关系映射框架,它对JDBC进行了非常轻量级对象封装,它将java对象与数据库建立映射关系,是一个全自动orm框架。...当保存一个对象时,这个对象不需要继承Hibernate中任何实现任何接口,只是个纯粹单纯对象—称为POJO对象(最纯粹对象—这个对象没有继承第三方框架任何实现任何接口) (4)Hibernate...7.2 不同点 (1)hibernate是全自动,而mybatis是半自动 hibernate完全可以通过对象关系模型实现对数据库操作,拥有完整JavaBean对象与数据库映射结构来自动生成sql...(6)缓存机制上,hibernate要比mybatis更好一些 MyBatis二级缓存配置都是在每个具体-对象映射中进行详细配置,这样针对不同可以自定义不同缓存机制。...(2)两者不同点 Hibernate二级缓存配置在SessionFactory生成配置文件中进行详细配置,然后再在具体-对象映射中配置是那种缓存。

    1.2K20
    领券