首页
学习
活动
专区
圈层
工具
发布

Entity Framework 和NHibernate的区别

从个人感受上看,NHibernate显然是从上而下(Top-down)的方式,天然的POCO支持就是最好的佐证。...其实ORM和DP的存在就是要实现这两个方向的能力和支持,否则就没有存在的必要,因为自上而下(Top-down)和自下而上(Bottom-up)两种方式由来已久,解决这两个方向的问题,ORM工具或E/R模型编程未必是最好的方式...同样仔细想想Entity Framework(也许NHibernate也是)在从外向里(Outside-in)方向也提供了支持,这也就是Dsimmons为代表的EF大佬经常说的,Entity Framework... 不是简单的ORM工具,它主要是提供一个完全贴近现实的E/R模型,这个模型可以进行数据编程(DP),也可以建模和进行数据表现,最重要的是这个模型可以被共享和重用(目前比较成功的一个案例就是能被ADO.NET... Data Service 共享和重用),另外一个方面SQL Server的功能再逐渐增强以及新近的LINQ等数据库+DP的功能混杂和爆发,都在另外一个角度朝从下向上推进,这种情况下Mapping是可以限定在某些功能和场景的

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

    Entity Framework 和NHibernate的区别

    从个人感受上看,NHibernate显然是从上而下(Top-down)的方式,天然的POCO支持就是最好的佐证。...其实ORM和DP的存在就是要实现这两个方向的能力和支持,否则就没有存在的必要,因为自上而下(Top-down)和自下而上(Bottom-up)两种方式由来已久,解决这两个方向的问题,ORM工具或E/R模型编程未必是最好的方式...同样仔细想想Entity Framework(也许NHibernate也是)在从外向里(Outside-in)方向也提供了支持,这也就是Dsimmons为代表的EF大佬经常说的,Entity Framework... Data Service 共享和重用),另外一个方面SQL Server的功能再逐渐增强以及新近的LINQ等数据库+DP的功能混杂和爆发,都在另外一个角度朝从下向上推进,这种情况下Mapping是可以限定在某些功能和场景的...从上面的描述上可以很清楚的看出Entity Framework和NHibernate的区别,虽然他们都是ORM工具,他们在ORM的各个方向的侧重是不一样.

    1.2K70

    NHibernate中关于Inverse的理解和使用

    在项目中NHibernate进行ORMapping,操作数据库变得非常简单,但是NHibernate中有很多特性不是很容易理解,比如Inverse这个功能就是其中的一个。...接下来举一个具体的例子,部门和员工,一对多关系,部门D1,D2,员工U1和U2,D1的Users里面有U1和U2,U1对象引用D1,U2对象引用D2。...如果是改为Inverse=True,那么然后保存d1和d2,那么对应的SQL是: NHibernate: INSERT INTO DEPARTMENT (NAME, DEPARTMENT_ID) VALUES...比如有员工E1和E2,奖品A1和A2,其是多对多关系,如果要设置E1员工获得A1和A2奖,那么需要设置各自的集合: 1: Emp e1=new Emp(){Name = "E1"}; 2...mapping.HasManyToMany(a => a.Awards).Not.Inverse(); } } 这样设置了Mapping后,就可以生成正确的SQL语句,当然如果把C#代码中的6行和7

    89330

    让OData和NHibernate结合进行动态查询

    但是在项目有时我们并没有采用Entity Framework,而是采用的NHibernate,那么该怎么用OData呢? 经过一段时间的Google和研究,终于找到了一个好的方案。...在OData API查询时,用户前端是url跟参数,但是在服务器端,我们是接收到的是一个ODataQueryOptions对象,其实我们需要做的就是把这个对象进行解析,生成NHibernate能够理解的查询形式...网上找到微软官方已经写了这么个转换方法,主要是对ODataQueryOptions对象下的Filter和OrderBy进行转换,另外两个参数Top和Skip很简单,就是一个整数。...SourceControl/changeset/view/72014f4c779e#Samples/WebApi/NHibernateQueryableSample/System.Web.Http.OData.NHibernate.../NHibernateFilterBinder.cs Filter和OrderBy属性都会被转换成HQL,然后我们就需要进行NHibernate的查询了。

    76710

    搭建你的Spring.Net+Nhibernate+Asp.Net Mvc 框架 (一)搭建你的环境

    在此和大家分享一下我是怎样一步一步搭建此框架的。并为初学者提供一个简单的示范。欢迎共同讨论技术问题。【本人纯属菜鸟!不足之处多谅解!】...第一步:       首先要看一下我项目中三层与mvc以及Spring.Net,Nhibernate处在的哪一层。看下面一幅图: 先做为一个大体的思路和了解。...http://www.springframework.cn/        了解Nhibernate干什么用?...http://www.springframework.cn/       了解Asp.Net Mvc  :《从零开始学习ASP.NET MVC 1.0》http://www.cnblogs.com/zhangziqiu.../archive/2009/02/27/aspnet-mvc-1.html       另外可以看webcast上的视频:老赵的关于Asp.Net Mvc教程!

    54230

    搭建你的Spring.Net+Nhibernate+Asp.Net Mvc 框架 (二)创建你的项目

    先介绍一下项目的各自的作用: 从数据库层到表示层依次为: 数据库层:          1、接口IDao层:IDao          2、Dao层实现:HibernateDao和SqlDao              ...              SqlDao:是由我们自己写sql实现的部分 业务逻辑层:          1、业务逻辑接口层:IBLL          2、业务逻辑接口的实现:BLL              3、我们把Mvc...第一步:             1、新建一个Web Mvc项目。如图所示:           2、然后依次添加类库项目。...因为这样一来对应于Nhibernate帮我们实现的面向对象的操作数据库就很好实现了【大家自己去体会】。 第二步:            首先看一下我们书库中的表。我准备了一个User表。

    44220

    MVC和MVVC

    今天说一说MVC和MVVC,希望能够帮助大家进步!!! MVC和MVVC?...MVC是后端中的概念 M (Model) 是指数据库中的数据 V (View) C (Controller) MVVC中是前端概念 M (Model) 是data里数据(通过ajax等获取的数据) V...Model 层代表数据模型,也可以在Model中定义数据修改和操作的业务逻辑;View 代表UI 组件,它负责将数据模型转化成UI 展现出来,ViewModel 是一个同步View 和 Model的对象...mvvm和mvc区别?它和其它框架(jquery)的区别是什么?哪些场景适合? mvc和mvvm其实区别并不大。都是一种设计思想。...主要就是mvc中Controller演变成mvvm中的viewModel。mvvm主要解决了mvc中大量的DOM 操作使页面渲染性能降低,加载速度变慢,影响用户体验。

    1.6K10

    MVC和MVT

    MVC 经典MVC模式中,M是指业务模型,V是指用户界面,C则是控制器,使用MVC的目的是将M和V的实现代码分离,从而使同一个程序可以使用不同的表现形式。其中,View的定义比较清晰,就是用户界面。...在MVC的三个部件中,模型拥有最多的处理任务。...C即controller控制器是指控制器接受用户的输入并调用模型和视图去完成用户的需求,控制器本身不输出任何东西和做任何处理。...MVC强制性地使应用程序的输入、处理和输出分开。 MVT Django将其的MVC架构称之为“MVT”。实际上和MVC架构的思想是一致的。...结合实际的Django开发而言,M在实际工程中其实就是ORM模型,V在实际工程中则是代表urls和views,而T则是前端页面。

    69540
    领券