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

在NHibernate与实体框架之间做出决定?

在NHibernate与实体框架之间做出决定,需要考虑以下几个方面:

  1. 概念:
    • NHibernate:NHibernate是一个开源的对象关系映射(ORM)框架,用于将对象模型映射到关系数据库中。
    • 实体框架:实体框架(Entity Framework)是微软提供的一个ORM框架,用于将对象模型映射到关系数据库中。
  2. 分类:
    • NHibernate:NHibernate属于成熟的ORM框架,具有较长的历史和广泛的应用。
    • 实体框架:实体框架是微软的官方ORM框架,与.NET生态系统紧密集成。
  3. 优势:
    • NHibernate:
      • 成熟稳定:NHibernate已经存在多年,经过了广泛的应用和改进,具有稳定性和可靠性。
      • 灵活性:NHibernate提供了丰富的配置选项和灵活的映射方式,可以满足各种复杂的数据映射需求。
      • 社区支持:NHibernate拥有庞大的开源社区支持,可以获取到丰富的文档、教程和问题解答。
    • 实体框架:
      • 简化开发:实体框架提供了一种简化的开发模式,通过自动生成数据库访问代码,减少了开发工作量。
      • LINQ支持:实体框架支持使用LINQ进行数据查询,提供了更加直观和强类型的查询语法。
      • Visual Studio集成:实体框架与Visual Studio紧密集成,提供了可视化的数据建模和设计工具。
  4. 应用场景:
    • NHibernate:NHibernate适用于需要更高度定制化和灵活性的项目,特别是在传统的.NET应用中。
    • 实体框架:实体框架适用于需要快速开发和简化数据访问层的项目,特别是在.NET生态系统中。
  5. 腾讯云相关产品:

需要注意的是,以上答案仅供参考,具体选择应根据项目需求、团队经验和技术偏好等因素综合考虑。

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

相关·内容

NHibernate实践模式

NHibernate实践模式 NHibernate是一款非常优秀的O/R mapping的开源框架,再还没有.net的时候它已经存在于java环境中。...下面我们先看一下它的框架 工作原理 将数据库表结构映射成实体类(xml-mapping文件,实体类 ,class文件),支持一对多,多对一,多对多的关系,默认生成对这些表的CURD操作,包括多表脊联操作...当然还有很多NHibernate的开发框架大家可以www.codeproject.com,www.codeplex.com上找到。...然后再去创建数据库表,和UI的部分; 我还是按在有数据表的情况下如何用NHibernate作开发 1.用MyGeneration创建实体类和mapping文件选择NHibernate lujan99 1.06...开发一个抽象工厂类(其实这里用一个简单工厂模式也能实现)去创建ISiteRepository,IApplicationRepository,降低代码之间的耦合度。

79240

NHibernate总结

现在的项目中数据访问使用的是NHibernate的一个ORM框架,小弟也是在后期加入项目组,之前对NHibernate就一直没有接触过,所以一直在学习NHibernate,都是一些很基础的一些东西,写出来总结一下...NHibernate的目标是对于开发者通常的数据持久化相关的编程任务,解放其中的95%。并请记住NHibernate作为数据库访问层,是你的程序紧密集成的。...封装Nhibernate底层操作,People.cs为实体类,People.hbm.xml为映射文件(把数据库表People映射到实体类People)。...,其中People实体类中的字段要设置为virtual。每个文件的详细代码在下面介绍 (2)     NH.Data层引用Nhibernate相关的DLL ?...ISession不是线程安全的,它代表数据库之间的一次操作。ISession通过ISessionFactory打开,在所有的工作完成后,需要关闭。

88840

Fluent NHibernate之旅二--Entity Mapping

Map(Expression> expression):Id类似,对应NHibernate中的property,我这里只是简单的映射,还有很多特性,今后的教程中会慢慢使用...两者之间的对比,只有用了以后你才能懂得,只能意传不能言语。对于我这种新手来说,Fluent更适合我,因为我可以用它来进行学习NHibernate。...映射做好了,接下来我们NHibernate中把映射加到配置中。...二、使用自定义类型映射实体属性 NHibernate支持我们用自定义的类型来映射属性,但因为我是初学,我真的不会,当然我在网上找到了相关的资料,在此也不多说,就说说Fluent的方式吧,我映射自定义属性的时候...NHibernate是个强大的ORM框架,对他的了解我还太浅,还需要一定的时间去掌握。

97990

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

它解决了对象和关系型数据库之间的数据交互问题,ORM的作用是关系型数据库和业务实体对象之间作一个映射,这样我们具体的操作业务对象的时候,就不需要再去和复杂的SQL语句打交道,只需简单的操作对象的属性和方法...  NHibernate 是一个成熟的开源对象关系映射器,适用于 .NET 框架。...ActiveRecord一样,它支持对象和数据库表之间的密切关系。 SubSonic一样,它支持使用 T4 模板生成 poco 类(仅限 V5)。...架构上,它比 Dapper、Massive 或 PetaPoco 等微 ORM 高出一步,因为您使用 LINQ 表达式,而不是魔术字符串,同时代码和数据库之间维护一个薄抽象层。...但是,它不像 LINQ to SQL 或实体框架那么重。没有更改跟踪,因此您必须自己进行管理,但从积极的方面来说,您可以获得更多控制权并更快地访问您的数据。

5.7K11

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

开源地址:https://github.com/dotnet/ef6 六、NHibernate(国外) NHibernate 是一个成熟的开源对象关系映射器,适用于 .NET 框架。...POCO 对象和数据库之间提供了一个简单、轻量、快速且类型安全的层。...架构上,它比 Dapper、Massive 或 PetaPoco 等微 ORM 高出一步,因为您使用 LINQ 表达式而不是魔术字符串,同时代码和数据库之间维护一个薄抽象层。...但是,它不像 LINQ to SQL 或实体框架那么重。没有更改跟踪,因此您必须自己进行管理,但从积极的方面来说,您可以获得更多控制权并更快地访问您的数据。...异步或同步,选择权您。(又名异步)(V6) 严格未修饰的 POCO 或归属的几乎 POCO 一起使用。 易于配置,包括开箱即用的流畅配置。

3.9K41

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

它解决了对象和关系型数据库之间的数据交互问题,ORM的作用是关系型数据库和业务实体对象之间作一个映射,这样我们具体的操作业务对象的时候,就不需要再去和复杂的SQL语句打交道,只需简单的操作对象的属性和方法...  NHibernate 是一个成熟的开源对象关系映射器,适用于 .NET 框架。...ActiveRecord一样,它支持对象和数据库表之间的密切关系。 SubSonic一样,它支持使用 T4 模板生成 poco 类(仅限 V5)。...架构上,它比 Dapper、Massive 或 PetaPoco 等微 ORM 高出一步,因为您使用 LINQ 表达式,而不是魔术字符串,同时代码和数据库之间维护一个薄抽象层。...但是,它不像 LINQ to SQL 或实体框架那么重。没有更改跟踪,因此您必须自己进行管理,但从积极的方面来说,您可以获得更多控制权并更快地访问您的数据。

3.8K20

NHibernate学习笔记之一,Hello world!

NHibernate是一个面向.NET环境的对象/关系数据库映射框架,主要应用在数据持久层,和其它的ORM框架一样用来把对象模型表示的对象映射到基于SQL的关系模型数据结构中去。...Nhibernate 来源于非常优秀的基于Java的Hibernate 关系型持久化框架。...准备工作: 需要使用.NET Framework 2.0或上以版本的框架,准备NHibernate框架,本文使用3.3版,到目前NHibernate都还是基于.net framework 2.0,官方下载地址...2、新建项目并添加引用,将NHibernate-3.3.0.GA-bin中的“Iesi.Collections.dll”NHibernate”引用到项目中,如图2所示复制Configuration_Templates...3、编写实体类(POCO,Plain Old CLR Objects),映射文件包含POCO类映射到一个或者多个数据库表的元数据信息。User.cs文件如下所示。

57220

NHibernate 代码映射实体

NHibernate 代码映射实体类 关于代码映射 NHibernate 3.2 自带了代码映射机制, 作为 xml 映射之外的一种映射方式, 由于推出的时间比较晚, 所以资料相对比较少, 而且社区版的...下面就通过一个实例来说明怎么使用 NHibernate 自带的代码映射。 实体关系 要映射的类关系图如下: ?...上图中有三个实体类, 他们之间的关系说明如下: Product Store 之间是多对多关系; Store Employee 之间是一对多关系; Employee Store 之间是多对一关系...总结 xml 映射以及其它第三方映射相比, 使用 NHibernate 代码映射有下面几个优点: 不需要使用 xml 文件即可完成, 可以充分利用 IDE 智能提示, 重构, 以及编译时检查; ...Attribute Mapping 相比, 对原来的 POCO 实体类没有污染 (Attribute) ; NHibernate 自带, 可以说是一等公民, 而 Fluent Mapping 是第三方维护的

86510

NHibernate 缓存

一级缓存 一级缓存就是 ISession 缓存, ISession 的生命周期内可用, 多个 ISession 之间不能共享缓存的对象, 通过 ISessionFactory 创建的 ISession...2、测试 Get Load 方法 session 提供了 Get 和 Load 两个方法, 这两个方法有什么区别呢?..." usage="read-only" include="all"/> 这一句表示对实体类 HibernateTest.Models.Category 启用二级缓存, 实际项目中, 可以根据需要对多个实体类启用二级缓存...也可以实体类的 hbm 映射文件中配置使用二级缓存, 不过 hibernate.cfg.xml 文件中统一配置是推荐的做法。...[CategoryID]=@p0; @p0 = 1 [Type: Int32 (0)] 从测试用例的输出可以看出, 二级缓存时可以不同的 session 之间共享。

57611

DotNetNuke初试水之结合NHibernate开发和导入一个Module

Dotnetnuke是建立微软ASP.NET平台之上的一套Web应用框架。Dotnetnuke是微软第一次向开源说"Yes"的里程碑。Dotnetnuke 是门户网站的未来。...注意:由于DNN的web框架代码使用VB.net的开发,但是同一个站点下可以使用不同的开发语言,比如我比较擅长C#开发,所以新增的模块我使用C#的模板。...各层之间使用实体类传递数据; UI+ObjectDatasource可以很好实现和常用的控件进行数据绑定(GridView,FormView,ListView),而且页面后台代码几乎不用写。...代码重构 生成Nhibernate实体类和Xml文件可以使用CodeSmith或是MyGeneration 应用Nhibernate封装好的NHibernate.Repository类库(...小结 使用DNN开发web应用程序的优势在于再它的框架下开发必须最小模块来开发而不是Page,所以很大程度上提高了组件的复用性,灵活性,提高开发效率,规范程序员的代码结构,提高后续的代码的可维护性

1.6K20

iBaits.Net(1):简介安装

iBATIS提供的持久层框架包括SQL Maps和Data Access Objects(DAO),同时还提供一个利用这个框架开发的JPetStore实例。   ...程序员甚至不需要对 SQL 的熟练掌握,Hibernate/OJB 会根据制定的存储逻辑,自动生成对应的 SQL 并调用 JDBC 接口加以执行 iBatis框架有助于帮助开发人员利用.NET进行应用程序开发的时候更好的使用数据库...不通,它不是一个实体关系映射工具,他仅用于帮助程序员建立SQL语句或者存储过程实体之间的映射,如果在实体和数据库表之间建立映射的话,那么NHibernate是个很好的框架,但是对于我们对数据库没有完全的控制权...,需要把数据表之外的问题看作是一个表格或者实体之间的对应的话,iBatis就明显的突出了它的优势 iBatis的工作流程 ?...可以看到iBatis是基于ADO.NET的,它很好的封装了ADO.NET,您只需要把一个对象或者一个基本类型作为参数,这些参数作为运行SQL语句或者存储过程时候的参数,然后通过参数名称XML文档中定义的

65370

系统架构师-基础到企业应用架构-分层

A、场景: 最原始的三层结构可能如下: ThreeArchitecture.Entities:实体定义层,该层主要是完成各分层间数据传递并且最终通过该实体实现DAL层数据库交互的数据传输。...目前主流的框架中都支持该模式,例如构建winform程序中可以通过MVC模式来分离界面层中的控件后端服务间的交互。降低耦合及依赖。...web上通过asp.net MVC框架来实现前端页面及后端控制器之间的隔离。        视图 视图是用户看到并与之交互的界面。...它只是接收请求并决定调用哪个模型构件去处理请求,然后再确定用哪个视图来显示返回的数 据。...作为一种新的模式,MVPMVC有着一个重大的区别:MVP中View并不直接使用Model,它们之间 的通信是通过Presenter (MVC中的Controller)来进行的,所有的交互都发生在Presenter

1.3K20

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

框架已经被越来越多的人所关注使用了,今天我们就来研究一下net方面的几个主流ORM框架,以及它们的效率测试(可能会有遗漏欢迎大家讨论)。...今天研究的orm框架如下: 1.NHibernate(使用介绍:http://www.cnblogs.com/stone_w/archive/2011/09/15/2177830.html) 2.iBatis...(使用介绍:http://www.cnblogs.com/stone_w/archive/2011/09/26/2192155.html) 3.NBear(使用介绍:http://www.cnblogs.com...2)、测试框架简介。 3)、测试CRUD结果表格对比。 4)、测试CRUD排行。 5)、框架优缺点分析。 正文: 1)、效率测试环境介绍。...缺点:依赖代码生成器生成每个实体类。 iBatis 优点: 效率比较高,尤其是非并发下效果很高,比较稳定。 缺点:配置文件比较多,t-sql每个配置文件里面写,条件查询比较麻烦。

88670

系统架构师-基础到企业应用架构-分层

ThreeArchitecture.Entities:实体定义层,该层主要是完成各分层间数据传递并且最终通过该实体实现DAL层数据库交互的数据传输。...目前主流的框架中都支持该模式,例如构建winform程序中可以通过MVC模式来分离界面层中的控件后端服务间的交互。降低耦合及依赖。...web上通过asp.net MVC框架来实现前端页面及后端控制器之间的隔离。        视图 视图是用户看到并与之交互的界面。...它只是接收请求并决定调用哪个模型构件去处理请求,然后再确定用哪个视图来显示返回的数 据。 ASP.NET MVC ?...作为一种新的模式,MVPMVC有着一个重大的区别:MVP中View并不直接使用Model,它们之间 的通信是通过Presenter (MVC中的Controller)来进行的,所有的交互都发生在Presenter

95950

NHibernate 缓存

一级缓存 一级缓存就是 ISession 缓存, ISession 的生命周期内可用, 多个 ISession 之间不能共享缓存的对象, 通过 ISessionFactory 创建的 ISession...2、测试 Get Load 方法 session 提供了 Get 和 Load 两个方法, 这两个方法有什么区别呢?..." usage="read-only" include="all"/> 这一句表示对实体类 HibernateTest.Models.Category 启用二级缓存, 实际项目中, 可以根据需要对多个实体类启用二级缓存...也可以实体类的 hbm 映射文件中配置使用二级缓存, 不过 hibernate.cfg.xml 文件中统一配置是推荐的做法。...[CategoryID]=@p0; @p0 = 1 [Type: Int32 (0)] 从测试用例的输出可以看出, 二级缓存时可以不同的 session 之间共享。

42510

Nhibernate入门demo

学习和使用Nhibernate已经很久了,一直想写点东西和大家一起学习使用Nhibernate。博客园里也有很多大牛写了很多关于Nhibernate入门的文章。...其中:李永京的博客http://www.cnblogs.com/lyj/tag/NHibernate/  内容最为丰富。而且李哥的博客里面学了很多东西,在此致谢!      ...3、怎么搭建Nhibernate?      4、怎么使用Nhibernate?      好,我们就带着这几个问题开始我们的Nhibernate的旅程。    ...通俗讲,就是我们操作实体类,然后让ORM框架自动映射到数据库中。      而Nhibernate就是:.Net环境下实现ORM的技术的一个框架!     ...Default.aspx   代码文件中添加如下代码 Configuration cfg = new Configuration(); cfg.Configure(Server.MapPath

31130

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

前言 以前的一篇文章中,为大家分享了《什么是ORM?为什么用ORM?浅析ORM的使用及利弊》。...它没有实现状态跟踪,需要自己处理实体的状态更改等。 推荐等级:★★★★☆ Dos.ORM Dos.ORM(原Hxj.Data)于2009年发布,2015年正式开源。...开发过程中参考了NBearMySoft,吸取了他们的一些精华,加入新思想,同时参考EF的Lambda语法进行大量扩展。该组件已在数百个成熟项目中应用。...除不允许改名,其它随意定制修改 推荐等级:★★★☆☆ ServiceStack.OrmLite ServiceStack.OrmLite的目标是提供一种方便,无干扰,无配置的RDBMS无关类型的封装,SQL...推荐等级:★★★☆☆ NHibernate NHibernate是一个面向.NET环境的对象/关系数据库映射工具。

7.7K90

NHibernate介绍「建议收藏」

NHibernate是一个面向.NET环境的对象/关系数据库映射工具。 1. 创建项目文件 Visual Studio开发工具里创建需要的项目结构。 2....NHibernate.dll(基础类库,数据库直接打交道,位于数据访问层) Iesi.Collections(基础类库辅助类库,位于数据访问层) Antlr3.Runtime(基础类库辅助类库,位于数据访问层...NHibernate中不用特殊的修饰就可以让对象和持久化层交互。...创建NHibernate映射文件 Nhibernate使用XML映射文件来映射POCO到数据库对象。虽然很多案例中这可能是一对一关系,但这并不是必定的。...本例中,我们使用Id这个字段。 generator元素告诉NHibernate怎样给新实体来创建唯一ID。 property标签是见得最多的标签。它简单地映射一个到数据表或者视图中对应字段的映射。

60820

aehyok.com的成长之路三——框架结构

框架项目结构简要说明   1-Infrastructure(基础设施) 1、aehyok.Utility:通用技术工具类          说明: 分类封装通用的技术无关的辅助工具类功能     依赖项...此层定义的接口基类的具体实现,都是可替换的。以适应不同的业务对基础模块功能的需求。                ...简要说明:   1、面向接口的方式来开发,然后通过IOC来接触模块之间的耦合。   2、aehyok.Core:提供数据存储、日志、缓存、权限等模块的基础接口或基类。      ...这样就可以很好的被替换掉,比如你现在的项目用的是EntityFramework开发的,项目经理突然说EntityFramework有这样的的问题满足不了我们系统,现在决定使用NHibernate,那么现在就只需要将该层进行研究实现...总结    自己的小站还在持续不断的更新的,虽然更新速度如蜗牛般缓慢,但是网站还是一天天的进步,自己也一点点的积累。

52040
领券