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

Entity Framework 和NHibernate区别

从个人感受上看,NHibernate显然是从上而下(Top-down)方式,天然POCO支持就是最好佐证。...Entity Framework v2支持POCO之后也就能实现垂直双方向支持,但这如我后面所说,还不够。...至于从里到外(Inside-out),从外向里(Outside-in)是真正显示ORM工具或E/R模型编程模型威力地方,因为99%现实世界,以及数据库都不是同步也无法保持同步,那么提供从里到外,从外向里两个方向支持是非常重要...其实ORM和DP存在就是要实现这两个方向能力和支持,否则就没有存在必要,因为自上而下(Top-down)和自下而上(Bottom-up)两种方式由来已久,解决这两个方向问题,ORM工具或E/R模型编程未必是最好方式...同样仔细想想Entity Framework(也许NHibernate也是)在从外向里(Outside-in)方向也提供了支持,这也就是Dsimmons为代表EF大佬经常说,Entity Framework

45450

Entity Framework 和NHibernate区别

今天在Boy's (小气神) BLOG上看到一篇精彩文章 Astoria to SQLite to Entity Framework to 建立你ORM观念 .文章说到了很多精彩内容,从SQLite...从个人感受上看,NHibernate显然是从上而下(Top-down)方式,天然POCO支持就是最好佐证。...Entity Framework v2支持POCO之后也就能实现垂直双方向支持,但这如我后面所说,还不够。...同样仔细想想Entity Framework(也许NHibernate也是)在从外向里(Outside-in)方向也提供了支持,这也就是Dsimmons为代表EF大佬经常说,Entity Framework...从上面的描述上可以很清楚看出Entity Framework和NHibernate区别,虽然他们都是ORM工具,他们在ORM各个方向侧重是不一样.

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

NHibernate中关于Inverse理解和使用

在项目中NHibernate进行ORMapping,操作数据库变得非常简单,但是NHibernate中有很多特性不是很容易理解,比如Inverse这个功能就是其中一个。...接下来举一个具体例子,部门和员工,一对多关系,部门D1,D2,员工U1和U2,D1Users里面有U1和U2,U1对象引用D1,U2对象引用D2。...(){u1,u2}; 默认不设置Inverse情况下如果先保存d1,后保存d2,会生成如下SQL: NHibernate: INSERT INTO DEPARTMENT (NAME, DEPARTMENT_ID...如果是改为Inverse=True,那么然后保存d1和d2,那么对应SQL是: NHibernate: INSERT INTO DEPARTMENT (NAME, DEPARTMENT_ID) VALUES...如果我们再调整下保存顺序,先保存D2,然后再保存D1,那么对应SQL是: NHibernate: INSERT INTO DEPARTMENT (NAME, DEPARTMENT_ID) VALUES

43730

NHibernate 多对多映射数据更新

NHibernate 多对多映射数据更新 最近在用 NHibernate 做多对多更新时突然发现 NHibernate 更新策略很差, 对多对多关系更新居然是先全部删除再插入全部数据, 感觉非常奇怪..., 再添加一个新角色, NHibernate 生成 SQL 语句如下(仅包含对关系表 User_Role 操作): DELETE FROM [User_Role] WHERE [UserId] =...)] INSERT INTO [User_Role] ([UserId], [RoleId]) VALUES (@p0, @p1);@p0 = 1 [Type: Int32 (0)], @p1 = 2..., 再添加一份新进来, 完全无法接受, 反过来思考觉得肯定是自己问题, 经过一番搜索 (Google), 发现 StackOverflow 上也有人问类似的问题, 并且最终在 NHibernate...不只是多对多, 如果你集合需要更新, NHibernate 推荐是: 19.5.2.

92310

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

关于NHibernate one to one标签上constrained="true",该标签在外表上设置,千万不要在主表上设置。...2.单向外键关联 比如我们做个中学管理系统,设计了一个Class表保存班级,另一个Classroom表保存教室,班级和教室是一对一关系,一个班级有且仅有一个教室,一个教室属于0到1个班级。...,这样可以帮助NHibernate在级联保存时能够正确保存而不报错)。...这其实又带来了另外一个问题,这可能是NHibernate没有考虑到地方,那就是我们采用是软删除,也就是说根本不会从数据库删除数据,只是把IS_DELETED置为1。...示例代码下载: https://files.cnblogs.com/studyzy/One2OneTest.7z

43920

Fluent NHibernate之旅

非常少,李哥NHibernate系列(NHibernate之旅)不失为一个经典,对于新手我们,需要完全掌握还需要很长一段路,对于新手来说,最初配置是非常头大一件事情,好在老赵推荐一个开源框架...本篇内容: 1、初识Fluent NHibernate(简称Fluent) 2、使用NHibernate和Fluent创建ISessionFactory 3、传统方式和Fluent对比。...2、下载NHibernate类库,虽然Fluent已经有了最新版本,但我们还需要ProxyDll,这里我们使用NHibernate.ByteCode.Castle这个程序集。...3、建立一个空数据库(我们使用MSSql2005),数据库名为:MyNHibernate,这个数据库为信任连接。...代码如下: 1 [TestMethod] 2 public void NHibernateFactory() 3 { 4 var factory = TradSessionFactory.GetCurrentFactory

1K60

连贯NHibernate 1.0正式发布

连贯NHibernate(Fluent NHibernate) 是通过编程方式而不是使用XML配置文件创建NHibernate映射API。...它目标是在项目中运用NHibernate时减少所遇到困难,提供更好可读性、可测试性和编译时安全性。...连贯NHibernate降低了复杂性,并进一步加强了约定胜于配置原则,即任何一个映射最常用设置是默认。 除了编译时检查外连贯NHibernate还为你映射测试提供了一个健壮API。...Wiki上有教程告诉怎么用,园子里inday几篇文章可以先看一下: [原创]Fluent NHibernate之旅 [原创]Fluent NHibernate之旅二--Entity Mapping...[原创]Fluent NHibernate之旅(三)—继承 codeproject上也有一篇针对RC文章:Fluent NHibernate and Linq2NHibernate – Demo Project

61270

NHibernate详解

大家好,又见面了,我是你们朋友全栈君。 什么是NHibernateNHibernate 是一个基于.Net 针对关系型数据库对象持久化类库。...Nhibernate 来源于非常优秀基于JavaHibernate 关系型持久化工具。 NHibernate 从数据库底层来持久化你.Net 对象到关系型数据库。...开发过程: 1.新建一个将要持久化.Net对象2.构建一个需要被持久化.Net类 3.构建一个可以让NHibernate知道如何持久化对象属性映射文件...4.构建一个让NHibernate知道如何连接数据库配置文件 5.使用NHibernateAPI 第一步:写构建表SQL 这里我们将使用是一个非常简单例子...你数据库里有一张User表。 现在可以在你代码中恰当简洁使用NHibernate。简化版本如下 1. 创建一个Configuration对象 2.

51030

Fluent NHibernate 之旅 导航篇

ORM大家都非常熟悉了吧,我相信也有很多朋友正在用自己或者一些公开框架,而最常用而且强大,非Hibernate了(Net中为NHibernate),网上文档非常多,不过在博客园中,介绍NHibernate...非常少,李哥NHibernate系列(NHibernate之旅)不失为一个经典,对于新手我们,需要完全掌握还需要很长一段路,对于新手来说,最初配置是非常头大一件事情,好在老赵推荐一个开源框架...Fluent NHibernate,有了它,我们可以完全脱离配置文件,不过博客园中介绍Fluent NHibernate文章非常少,而且官方文档也还没有完全,所以对于我来说也就一点一点摸索起来,这也激起了我写这个笔记欲望...,废话不说了,下面就介绍Fluent NHibernate,大家也一起来体验一下Fluent Nhibernate快感吧。...导航: [原创]Fluent NHibernate之旅开篇 [原创]Fluent NHibernate之旅二--Entity Mapping [原创]Fluent NHibernate之旅(三)—

64470

NHibernate总结

现在项目中数据访问使用NHibernate一个ORM框架,小弟也是在后期加入项目组,之前对NHibernate就一直没有接触过,所以一直在学习NHibernate,都是一些很基础一些东西,写出来总结一下...如果你下个系统学习NHibernate,给大家推荐一个博客,详细介绍了NHibernate,我也是根据这篇博客学习。...NHibernate目标是对于开发者通常数据持久化相关编程任务,解放其中95%。并请记住NHibernate作为数据库访问层,是与你程序紧密集成。...,其中People实体类中字段要设置为virtual。每个文件详细代码在下面介绍 (2)     在NH.Data层引用Nhibernate相关DLL ?...(2)     NHibernateHelper.cs数据操作辅助类 我们现在可以开始NHibernate了。

88840

C# 数据操作系列 - 11 NHibernate 配置和结构介绍

前言 今天是NHibernate第二篇内容,通过上一篇内容,我们初步了解了NHibernate创建和使用。这一篇,我继续探索NHibernate背后秘密。嗯,就是这样。 1....NHibernate结构 先给小伙伴们放个图: ? 这是NHibernate整体结构图。...2. 实例状态 在NHibernate中,一个可持久化对象有三种不同状态,依据与持久化上下文之间关系不同,其中ISession就是一个持久化上下文。...hbm2ddl.auto 该值表示每次ISessionFactory创建时候,是否自动生成DDL语句并提交数据库执行。默认是空,表示不会强制更新数据库。...总结 这是一篇枯燥乏味说明文,主要介绍了Nhibernate基本内容。下一章我们来试试,如何创建Nhibernate映射配置。

1.1K20

C#——Nhibernate探索

C#—Nhibernate探索 本篇文章,让我们一起来探索Nhibernate。 首先我们去搜索Nhibernate下载地址,如下链接所示。 该版本可能是最新版,我下载4.0.4.GA。...这里有两个类库;可以分析得出,这两个类库是要被引用。 类库拥有对应XML,没找到具体使用该XML方法。所以暂时不去理他。 NHibernate.pdb应该是没有用。估计是作者忘记删除了。...nhibernate-configuration.xsd和nhibernate-mapping.xsd两个文件暂时不知道要干什么用。...结语 这是一场Nhibernate探索之旅,结果是非常顺利配置成功了。共耗时2小时。...我并不清楚那几个点原理和含义,因为我没看Nhibernate原代码。 虽然本文是讲述,配置Nhibernate;但我更想讲述是,面对未知框架入手学习和使用方法。

47130
领券