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

NHibernate VS IbatisNet

NHibernate对数据库结构提供了较为完整的封装,NHibernate的O/R Mapping实现了PO 和数据库表之间的映射,以及SQL 的自动生成和执行。...程序员往往只需定义好了PO 到数据库表的映射关系,即可通过NHibernate提供的方法完成持久层操作。...具体的SQL 需要程序员编写,然后通过映射配置文件,将SQL所需的参数,以及返回的结果字段映射到指定PO。...使用IbatisNet提供的ORM机制,对业务逻辑实现人员而言,面对的是纯粹的DotNet对象,这一层与通过NHibernate实现ORM 而言基本一致,而对于具体的数据操作,NHibernate会自动生成...IbatisNet 需要手写 sql 语句,也可以生成一部分, NHibernate 则基本上可以自动生成,偶尔会写一些 Hql 。

76470

Nhibernate_nhibernate与ef区别

步骤1:创建数据库表 我们正在做的是一个非常简单的NH示例.在这个例子里面,我们实现一个基本的用户管理子系统.我们将会使用一个user表(sql server 2000): use NHibernate...MS Sql Server 2000,但是如果你找到一个任何数据库的.net Data Provider驱动,你可以使用任何数据库....让我们返回到"id" tag,你可能会猜想这个tag和映射到表的Primary Key有关.正确.ID tag的格式和Property tag的相似.我们从Property(name)映射到目标数据库的字段...Tip:如果你使用vs.net编译,设置Build Action,把User.hbm.xml文件作为资源绑定到Asssembly,这样映射文件就成了Asssembly的一部分了.后面我们会明白这个步骤的重要性...驱动,连接到本地的nhibernate数据库,并且使用提供的用户和密码.还会有其他的配置项,你可以参看文档.

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

    Nhibernate入门与demo

    学习和使用Nhibernate已经很久了,一直想写点东西和大家一起学习使用Nhibernate。博客园里也有很多大牛写了很多关于Nhibernate入门的文章。...本篇文章阅读对象是:Nhibernate初学者!如果你是Nhibernate的研究者或者已经很熟练的运用Nhibernate请不吝赐教,对本文不足之处进行指教。      带着问题去学习!...3、怎么搭建Nhibernate?      4、怎么使用Nhibernate?      好,我们就带着这几个问题开始我们的Nhibernate的旅程。    ...通俗讲,就是我们操作实体类,然后让ORM框架自动映射到数据库中。      而Nhibernate就是:.Net环境下实现ORM的技术的一个框架!     ...第四个问题:         使用和测试你的配置【可以爽一把了!】

    37230

    NHibernate总结

    现在的项目中数据访问使用的是NHibernate的一个ORM框架,小弟也是在后期加入项目组,之前对NHibernate就一直没有接触过,所以一直在学习NHibernate,都是一些很基础的一些东西,写出来总结一下...NHibernate不仅仅管理.NET 类到数据库表的映射(包括.NET 数据类型到SQL 数据类型的映射),还提供数据查询和获取数据的方法,大幅度减少我们开发时人工使用SQL和ADO.NET处理数据的时间...开始使用NHibernate 我们亲自动手,一步一步实现一个NHibernate简单程序来,我只实现了简单的增删改查功能。...封装Nhibernate底层操作,People.cs为实体类,People.hbm.xml为映射文件(把数据库表People映射到实体类People)。...映射文件告诉NHibernate它应该访问数据库里面的哪个表及使用表里面的哪些字段。 <?xml version="1.0" encoding="utf-8" ?

    94040

    Nhibernate_juan benet

    创建NH的配置文件,以告诉NH怎样连接数据库. 5. 使用NH提供的API....步骤1:创建数据库表 我们正在做的是一个非常简单的NH示例.在这个例子里面,我们实现一个基本的用户管理子系统.我们将会使用一个user表(sql server 2000): use NHibernate...让我们返回到”id” tag,你可能会猜想这个tag和映射到表的Primary Key有关.正确.ID tag的格式和Property tag的相似.我们从Property(name)映射到目标数据库的字段...Tip:如果你使用vs.net编译,设置Build Action,把User.hbm.xml文件作为资源绑定到Asssembly,这样映射文件就成了Asssembly的一部分了.后面我们会明白这个步骤的重要性...驱动,连接到本地的nhibernate数据库,并且使用提供的用户和密码.还会有其他的配置项,你可以参看文档.

    38350

    NHibernate详解

    4.构建一个让NHibernate知道如何连接数据库的配置文件 5.使用NHibernate的API 第一步:写构建表的SQL 这里我们将使用的是一个非常简单的例子...假设你正在为你的网站开发一个基本的用户管理子系统。我们将使用如下的一张User表(假定你已经设置好一个数据库—在的例子里我称它为NHibernate)。...映射文件将成为装配件的一部分。更详细的细节重点将在后面展示。 提示:如果你仅仅是改变映射文件,你不能使用build 而应该Rebuild项目。...那里有一堆属性你需要调整来确定如何让NHibernate来访问数据库。再次说明,你可以在文档里获取更多信息。 NHibernate使用log4net来记录内部发生的一切。...你的数据库里有一张User表。 现在可以在你的代码中恰当简洁的使用NHibernate。简化的版本如下 1. 创建一个Configuration对象 2.

    71030

    .NET(C#)有哪些主流的ORM框架,SqlSugar,Dapper,EF还是...

    & .NET CORE的高性能、轻量级 ORM框架,众多.NET框架中最容易使用的数据库访问技术。...表达式写法,国产ORM支持度最高,开源中国ORM排行前三 不需要像NHibernate的XML配置,不需要像EF的各种数据库连接驱动 遵循MIT开源协议,除不允许改名,其它随意定制修改 推荐等级:★★★...该框架曾经为.NET Framework的一部分,但version 6之后从.NET Framework分离出来。...推荐等级:★★★☆☆ NHibernate NHibernate是一个面向.NET环境的对象/关系数据库映射工具。...对象/关系数据库映射(object/relational mapping,ORM)这个术语表示一种技术,用来把对象模型表示的对象映射到基于SQL的关系模型数据结构中去。

    8.5K90

    NHibernate联合主键详细示例

    使用NHibernate实现一对多,多对一的关联很是简单,可如果要用复合主键实现确实让人有些淡淡的疼。虽然很淡疼但还是要去抹平这个坑,在下不才,愿意尝试。...二、关键步骤 注解如何实现复合主键 根据官方文档说明,联合主键最好是一个独立的类,需要重载Equals和GetHashCode方法,且标记为可序列化。...实现一对 和 多对一的映射 这步没有多大难度,主要处理好注解的顺序即可,以及OneToMany时联合主键如何设置的问题.示例代码如下: [Bag(0, Name = "Childs", Cascade...,与联合主键共用了一个字段GroupNumber,导致在NHibernate做映射转换的时候会多计算出一个需要填充的值,但SqlParameterCollection中又少一个位置。...,返回值的主键会为Null 联合主键与联合外键字段不能重复,也不能共用 注意重载的GetHashCode和Equals方法 GetHashCode返回实例的惟一标识 Equals判断是否相同实例的具体实现

    1.5K80

    NHibernate中关于Inverse的理解和使用

    在项目中NHibernate进行ORMapping,操作数据库变得非常简单,但是NHibernate中有很多特性不是很容易理解,比如Inverse这个功能就是其中的一个。...在使用NHibernate进行数据库操作的时候,比如数据插入的时候,经常用到级联功能,比如最常见的就是一个订单对应多个明细行,在保存订单时只需要Save订单对象即可,订单下的所有明细行会级联保存。...对于Bidirectional的情况,那么在保存数据到数据库时就会涉及到一个问题,如果两边的数据不一致,也就是mismatch,到底是以Order中的Items为准还是以OrderItem中的Order...如果在Mapping配置Order的Item时设置inverse="true",那么NHibernate就会使用OrderItem的Order引用作为关联。...以上都是插入过程,接下来还要进行外键更新操作,保证数据库中的外键与对象中Department中设置的Users保持一致,所以Update每个User表即可。

    47130

    项目实践,Redis集群技术学习(一)

    Redis.1 数据分布 Redis.1.1 数据分布理论 分布式数据库首先要解决把整个数据集按照分区规则映射到多个节点的问题, 即把数据集划分到多个节点上,每个节点负责整体数据的一个子集。...1.节点取余分区 使用特定的数据,如 Redis 的键或用户 ID,再根据节点数量 N 使用公式:hash(key)%N 计算出哈希值,用来决定数据映射到哪一个节点上。...3.虚拟槽分区 虚拟槽分区巧妙地使用了哈希空间,使用分散度良好的哈希函数把所有数据映 射到一个固定范围的整数集合中,整数定义为槽(slot)。...Redis.1.2 Redis 数据分区 Redis Cluser 采用虚拟槽分区,所有的键根据哈希函数映射到 0~16383 整数槽内,计算公式:slot=CRC16(key)&16383。...每一个节点负责维护一部分槽以及槽所映射的键值数据,如图 10-5 所示。 Redis 虚拟槽分区的特点: ·解耦数据和节点之间的关系,简化了节点扩容和收缩难度。

    72610

    Fluent Nhibernate之旅(五)--利用AutoMapping进行简单开发

    Fluent Nhibernate(以下简称FN)发展到如今,已经相当成熟了,在Nhibernate的书中也相应的推荐了使用FN来进行映射配置,之前写的FN之旅至今还有很多人会来私信我问题,说来惭愧,从...因为这里考虑到一些契约的问题,它的Add参数为AutoPersistenceModel类型,接下来会说的。 数据库结构 接下来,我们设计一个数据库结构,简单点: ?...,ORM最大的好处就是我们可以随意的变更我们的数据库类型,不需要考虑其类型,这是我选择Nhibernate的原因,EF虽然通过扩展能够支持其他数据库,但我相信用EF使用其他数据库的人很少吧。...刚我们的测试报错,是因为Employee中的Name是个UserName类,Nhibernate的Component,我在FN之旅四(上)中有介绍到,默认情况下映射根据字段映射到数据库的,所以上面的测试会报错...Fluent Nhibernate确实是个好东西,让我在开发上省去了很多时间,今天虽然介绍了AutoMapping,但我不推荐您在您的项目中使用,用起来没手感(个人感觉),需要约定的东西太多了,对于数据库结构也得按照他的契约来

    97760

    Spring中国教育管理中心-Apache Cassandra 的 Spring 数据教程十二

    复合主键可能需要稍微不同的数据模型。 14.4.1.使用主键 Cassandra 需要至少一个 CQL 表的分区键字段。一张表可以额外声明一个或多个集群键字段。...这些方法的值相等的语义应该与键映射到的数据库类型的数据库相等一致。主键类可以与存储库(作为Id类型)一起使用,并在单个复杂对象中表示实体的身份。以下示例显示了一个复合主键类: 示例 111....注释概述如下: @Id:应用于领域或财产级别以标记用于身份目的的财产。 @Table: 应用于类级别,表示该类是映射到数据库的候选。您可以指定存储对象的表的名称。...@Transient: 默认情况下,所有私有字段都映射到行。此注释将应用它的字段排除在数据库中。瞬态属性不能在持久性构造函数中使用,因为转换器无法实现构造函数参数的值。...@PersistenceConstructor: 标记给定的构造函数——即使是受包保护的构造函数——在从数据库实例化对象时使用。构造函数参数按名称映射到检索行中的键值。

    1.8K40

    数据库不推荐使用外键的9个理由

    来源:www.jdon.com/49188 我的经验告诉我,很多数据库(大多数我曾经使用的)不包含外键时并不总是一件坏事。在这篇文章中,我想把重点放在为什么的原因上。 为什么这是一个问题?...2.表格关系不清晰 数据库中缺少外键的另一个不太明显的负面影响是,不了解该模式的人很难找到正确的表并找出表关系。这可能会导致严重的数据库查询和报告问题。 为什么数据库可以没有外键?...这仅仅是我在各种渠道(主要是互联网论坛)都能找到的许多开发人员、架构师为什么不使用它们的理由。我个人(和许多其他经验丰富的数据库专家)建议在任何可能的地方使用它们(不会导致更多的问题)。...为了能够容纳旧的脏数据,架构师可以选择a)清理和转换遗留数据(昂贵的练习),或者b)放弃在数据库级别上强制执行参照完整性。一些打包的ERP和CRM应用程序也使用这种方法。...这需要一些努力,但是却没有带来直接的好处。一些架构师和数据库管理员只是忽略了这一部分。 9.保持模型的秘密 也许这是一个很遥远的问题,但也许有时候是因为人们不希望别人知道太多太容易。

    2.1K10

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

    RTM相对于RC版本来说,使用方法没有太大的变化,所以不做讲解。 我们后面的教程,会使用RTM版本来演示,希望大家能及时更新(点击下载最新版)。...Mapping 今天我们将说一下ORM中的R映射,我们现在的数据库大多都是关系型数据库了,所以可以说关系在我们数据库设计中也是非常重要的部分,NHibernate也非常重视这一块,但在传统方式中,配置就比较麻烦...ID与User的ID是一致的,所以我们要使用Foregin来获取User的ID。...总结 因为关联在数据中属于比较重要的一部分,所以准备拆分成上中下进行讲解。...今天说了关联中比较简单的一对一关系,其实一对一关系并不简单,第一次接触的时候,难免会遇到各种问题,很欢迎大家能留言,大家一起讨论问题。

    1.2K60

    数据科学 IPython 笔记本 9.11 结构化数据:NumPy 的结构化数组

    这里没有任何东西告诉我们三个数组是相关的;如果我们可以使用单一结构来存储所有这些数据,那将更自然。NumPy 可以使用结构化数组处理这个问题,结构化数组是具有复合数据类型的数组。...回想一下,之前我们使用这样的表达式创建了一个简单的数组: x = np.zeros(4, dtype=int) 我们可以使用复合数据类型规范,以相似方式创建结构化数组: # 使用结构化数组的复合数据类型...如果你发现自己为处理结构化数据的遗留 C 或 Fortran 库编写 Python 接口,你可能会发现结构化数组非常有用!...转向 Pandas 关于结构化和记录数组的这一部分,有意放在本章的最后部分,因为它很好地介绍了我们将要介绍的下一个包:Pandas。...在某些情况下,最好了解这里讨论的结构化数组,特别是在你使用 NumPy 数组来映射到 C,Fortran 或其他语言的二进制数据格式的情况下。

    71710

    One to One 的数据库模型设计与NHibernate配置

    在数据库模型设计中,最基本的实体关系有三种:一对一、一对多、多对多。关于一对多和多对多使用的情况较多,之前也有过一些讨论,现在来说明一下在数据库中一对一的模型设计。...首先,关系数据库中使用外键来表示一对多,使用中间表和两边的外键来表示多对多,而一对一的话有三种表示方式:一种是使用相同的主键值,第二种是使用单边的外键,第三种就是使用双边外键。...表中添加CLASSROOM_ID,因为我们必须先创建Classroom,然后再创建Class,然后可以在数据库中将CLASS表中的CLASSROOM_ID设置为不允许为空(当然,设置为允许为空也没有问题...单向外键关联时,如果数据库允许CLASSROOM_ID为空,那么是可以打断Class和Classroom的关系的,而使得这两个对象独立存在,这一点是和主键关联所不一样的地方。...这其实又带来了另外一个问题,这可能是NHibernate没有考虑到的地方,那就是我们采用的是软删除,也就是说根本不会从数据库删除数据,只是把IS_DELETED置为1。

    49220

    3.35 PowerBI报告可视化-按钮+书签,让一个页面展示更多内容

    加入 PowerBI自己学 知识星球 可以:下载源文件,边学边练;遇到问题,提问交流,有问必答。字段参数很方便地实现了一个图表内切换多个单层维度或度量值,可以替代书签的一部分功能。...但是,如果切换使用了分层维度(比如年、月同时放在X轴)的图表或者多个独立的图表,仍要通过书签功能来实现。...STEP 2 点击菜单栏视图下的书签,打开书签窗格,再添加2个书签,命名为趋势和产品。STEP 3 点击菜单栏视图下的选择,打开选择窗格,隐藏产品图表,按住Shift键选择做好的两个图表。...STEP 4 同样的操作,隐藏趋势图表,给产品书签做一次更新。STEP 5 点击菜单栏插入下的按钮,选择导航器-书签导航器,生成切换书签用的按钮(也可以插入2个空白按钮,链接到相应的书签)。...在PowerBI桌面版中,按住Ctrl键(发布后线上版不需要),点击趋势按钮,如下:继续按住Ctrl键(发布后线上版不需要),点击产品按钮,如下:

    12710

    20个代码生成框架

    NHibernate是Hibernate公司在Java自动生成领域取得巨大成功后推出的一款ORM工具....它可以帮助ASP、JSP、PHP开发人员快速的开发简单的数据库维护程序。无需任何编码,只需将数据库结构导入到CodeMaker中并做简单的设置,CodeMaker即可生成完整的数据库操作页面。...使用MyGeneration 可以为Gentle.NET, Opf3, NHibernate等生成ORM架构或ORM文件,为多种数据库生成存储过程,为.Net项目生成C#、VB.NET 程序代码,PHP...该项目是 Rapid Framework 框架的一部分。...通过连接数据库,选择任意数据表生成实体模型,支持简单SQL语句查询,直接浏览数据表结构和数据。 支持多项目管理,文件编辑,一键式生成代码。快速构建基础框架代码,并支持MVC 3层构架。

    4.6K50

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

    它解决了对象和关系型数据库之间的数据交互问题,ORM的作用是在关系型数据库和业务实体对象之间作一个映射,这样我们在具体的操作业务对象的时候,就不需要再去和复杂的SQL语句打交道,只需简单的操作对象的属性和方法...EntityFramework.TypedOriginalValues - 通过某些特殊方法来获得数据库对象在本次修改前的原始值。常见的使用场景是对数据库操作的数据做审计。...主要特点: 支持 CodeFirst 模式,即便使用 Access 数据库也支持数据迁移; 支持 DbFirst 模式,支持从数据库导入实体类,或使用实体类生成工具生成实体类; 支持 深入的类型映射,比如...NHibernate社区网站 - https://nhibernate.info GitHub地址:https://github.com/nhibernate/nhibernate-core SmartSql...的目标是提供一个方便、DRY、无配置、与 RDBMS 无关的类型包装器,该包装器与 SQL 保持高度亲和性,公开直观的 API,生成可预测的 SQL 并干净地映射到断开连接和数据传输对象 (DTO)

    5.9K11

    数据治理专业认证CDMP学习笔记(思维导图与知识点)- 第五章数据建模与设计篇

    可按键结构分为单一键、 组合键、复合键、代理键,按功能分为候选键、主键、备用键。 键的结构类型:单一键:唯一标识实体实例的一个属性。...复合键:包含一 个组织键和至少一个其他单一键、组合键或非键属性。 键的功能类型:超键:唯一标识实体实例的任何属性集。候选键:标识实体实例的最小属性集合, 可能包含一个或多个属性。...使用轴表示法 Axis Notation 来建模。此模型中实体之间的连线表示用于说明业务问题的导航路径。 事实表:行对应于特定的数值型度量值,如金额。事实表占据了数据中大部分空间,且有大量的 行。...模型的规范化通常要求达到第三范式。 Boyce/Codd 范式(BCNF):解决交叉的复合候选键问题。候选键是主键或备用键。 第四范式 4NF:将所有三元关系分解为二元关系,直到这些关系不可再分。...为方便理解,整理本部分思维导图如下: 三、活动 1、规划数据建模 规划数据建模的交付物:1.图表。2.定义。3.争议和悬而未决的问题。4.血缘关系:来源/目标映射形式呈现。

    1.7K20
    领券