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

Entity Framework 和NHibernate的区别

从个人感受上看,NHibernate显然是从上而下(Top-down)的方式,天然的POCO支持就是最好的佐证。...而ADO.NET Entity Framework目前v1版本,应该是从下而上的方式Bottom-up),ADO.NET Entity Data Model Wizard就是最好的佐证。...其实ORM和DP的存在就是要实现这两个方向的能力和支持,否则就没有存在的必要,因为自上而下(Top-down)和自下而上(Bottom-up)两种方式由来已久,解决这两个方向的问题,ORM工具或E/R模型编程未必是最好的方式...同样仔细想想Entity Framework(也许NHibernate也是)在从外向里(Outside-in)方向也提供了支持,这也就是Dsimmons为代表的EF大佬经常说的,Entity Framework... 不是简单的ORM工具,它主要是提供一个完全贴近现实的E/R模型,这个模型可以进行数据编程(DP),也可以建模和进行数据表现,最重要的是这个模型可以被共享和重用(目前比较成功的一个案例就是能被ADO.NET

77750

Entity Framework 和NHibernate的区别

从个人感受上看,NHibernate显然是从上而下(Top-down)的方式,天然的POCO支持就是最好的佐证。...而ADO.NET Entity Framework目前v1版本,应该是从下而上的方式Bottom-up),ADO.NET Entity Data Model Wizard就是最好的佐证。...同样仔细想想Entity Framework(也许NHibernate也是)在从外向里(Outside-in)方向也提供了支持,这也就是Dsimmons为代表的EF大佬经常说的,Entity Framework... 不是简单的ORM工具,它主要是提供一个完全贴近现实的E/R模型,这个模型可以进行数据编程(DP),也可以建模和进行数据表现,最重要的是这个模型可以被共享和重用(目前比较成功的一个案例就是能被ADO.NET...从上面的描述上可以很清楚的看出Entity Framework和NHibernate的区别,虽然他们都是ORM工具,他们在ORM的各个方向的侧重是不一样.

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

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

    在此和大家分享一下我是怎样一步一步搭建此框架的。并为初学者提供一个简单的示范。欢迎共同讨论技术问题。【本人纯属菜鸟!不足之处多谅解!】...第一步:       首先要看一下我项目中三层与mvc以及Spring.Net,Nhibernate处在的哪一层。看下面一幅图: 先做为一个大体的思路和了解。...第二步:       了解Spring.Net做什么用?http://www.springframework.cn/        了解Nhibernate干什么用?...第三步:       准备:Spring.Net,Nhibernate的开发环境,我的使用的版本比较老,但是一直使用着比较稳定,功能也基本满足开发需要,在此就不多说了,在http://www.springframework.cn...注:VS2008 + sp1 + Asp.Net Mvc 环境都要装上 第四步:       现在我们的环境搭建的差不多了。然后就开始我们的旅程吧。       先写到这,你的环境准备好了吗?

    54230

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

    本篇文章的目的:首先是创建解决方案。并创建相关的项目。...先介绍一下项目的各自的作用: 从数据库层到表示层依次为: 数据库层:          1、接口IDao层:IDao          2、Dao层实现:HibernateDao和SqlDao              ...         2、业务逻辑接口的实现:BLL              3、我们把Mvc中的Model放到一个单独的项目中:Model 表示层:         就是我们的web项目。...至于你想用Extjs等ui框架,那就是看你的选择了。 现在就开始我们的项目旅程。 第一步:             1、新建一个Web Mvc项目。...因为这样一来对应于Nhibernate帮我们实现的面向对象的操作数据库就很好实现了【大家自己去体会】。 第二步:            首先看一下我们书库中的表。我准备了一个User表。

    44320

    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...语句,当然如果把C#代码中的6行和7行去掉,结果也是正确的,因为现在系统只认Emp中的Awards集合了。

    89330

    搭建你的Spring.Net+Nhibernate+Asp.Net Mvc 框架 (四)配置全攻略

    本篇目的:配置Spring.Net和Nhibernate。配置Spring.Net来注入Nhibernate需要的SessionFactory,配置业务逻辑层所需要的Dao层属性的支持。...至于放到什么项目中都可以,为了便于理解,我们把数据库表和实体类映射文件放到Model项目中。并建立一个专门的文件夹Mappings来存放映射文件。添加实体类映射数据库文件User.hbm.xml。...Nhibernate就是这样要求的。我们按照模板来配置就行了。User.hbm.xml中的配置是根据数据库中的表和我们的实体类User进行对应的。这方面不多讲,可以参考Nhibernate的官方文档。...实体注入给业务逻辑层 到此为止,我们把Spring.Net和Nhibernate的配置基本就搞定了。...添加spring.net和Nhibernate的dll的引用。 先写到这。。。

    1.3K20

    搭建你的Spring.Net+Nhibernate+Asp.Net Mvc 框架 (三)实现数据库接口层和业务逻辑层

    本篇是介绍我们完成数据库接口层和业务逻辑层的接口的设计和实现。 废话不多讲,还是怎么一步一步做。 第一步:设计IDao层。在MyWeb.WebTemp.IDao项目中添加IUserDao接口。...在MyWeb.WebTemp.HibernateDao项目中添加类文件:UserDaoHibernate.cs 在编写代码之前,我们首先要引入spring.net和Nhibernate的支持类库。...; using Spring.Data.NHibernate.Generic; using SpringHiberate.dao.model; using NHibernate; using MyWeb.WebTemp.IDao...【业务逻辑接口的实现】在MyWeb.WebTemp.BLL中添加类文件:UserServiceImpl.cs 注:Impl是实现单词的缩写。...同样我们要添加Model项目引用和IUserDao项目的引用。

    62120

    6个值得收藏的.NET ORM 框架

    ASP.NET Core: 完美支持用于构建高性能 Web API、网站和微服务的 ASP.NET Core 框架。...NHibernate:功能巨匠NHibernate 是 Java 世界著名的 Hibernate 框架的 .NET 版本,是 .NET 平台最老牌、最强大的全功能 ORM。...混合操作:既支持像 Dapper 一样执行原始 SQL,也提供了流畅的、强类型的 CRUD 操作 API(如 Query、Insert、Update)。...它是一个轻量级的 ORM,旨在通过约定和简洁的 API 提供一种直观、无障碍的数据库操作体验。优点API 优雅:提供了非常直观和流畅的强类型 API,可以减少手写 SQL 的需要。...没有银弹,只有最合适的工具。如果追求极致性能和对 SQL 的完全控制时,Dapper 是不二之选。如果需要一个功能全面、能处理复杂模型的框架时,可以考虑 NHibernate 或 RepoDb。

    27600

    搭建你的Spring.Net+Nhibernate+Asp.Net Mvc 框架 (六)写在后面的话

    如果在你的项目中,配置的没有报错,但是总是注入进来的都是null的话,可查看配置文件所在的项目是否添加了配置文件中所引用或配置了的项目。还有就是mvc中control中注入都失败了。...下面再回顾一下整个项目搭建的流程: 1、准备开发环境:Spring.Net 、Nhibernate 、Asp.Net Mvc、Vs2008 sp1等 2、创建解决方案,添加Service Dao  Model...等各个层的项目,准备数据库 3、设计和实现IDao 。...在此基础上实现IBLL 4、配置hbm实体类映射xml文件      配置web项目的webconfig文件      配置CommonDao.xml----Nhibernate核心配置文件     ...分享你我的知识,让技术改变世界。系列在不断完善中。。。 希望大家多批评指正! 相关下载 项目中用到的:spring.net Nhibernate控件下载 项目:源代码下载

    32710

    ASP.NET Web API和依赖注入

    ASP.NET Web API中自带了一个依赖解析器(Dependency Resolver)接口,允许我们向控制器注入依赖关系。...你不知道依赖关系图有多深,并且当被多次要求提供相同服务的实例时,你并不知道这是来自同一个HTTP请求,还是多个并发的HTTP请求。...他还列举了两个示例,一个是“使用简单的自定义DI容器”,一个是“使用更加健壮的DI容器,Castle Windsor”、(Autofac ASP.NET Web API (Beta) Integration...区别主要在于解析类型的时候,容器可以使用哪些信息。 在更广的范围来说,这只是ASP.NET可扩展性的一个示例。...查看英文原文:ASP.NET Web API And Dependency Injection Dependency Injection with ASP.NET Web API and Autofac

    1.5K90

    用ASP.NET Core 2.1 建立规范的 REST API -- 保护API和其它

    ://www.cnblogs.com/cgzl/p/9165388.html 保护API和其它: https://www.cnblogs.com/cgzl/p/9172603.html 本文所需项目代码...这几种方案里Basic提供的保护程度/级别最低, 而Negotiate最高/强. ASP.NET Core可选择的认证提供商就很多了, 例如ASP.NET Core Identity....请求token的地址是 /api/authentication, 请求token用的是Basic方案, Post方法里就是先解码, 验证用户名和密码, 成功后调用GenerateToken生成token...这样就可以保护API,避免一些非正常使用的场景,例如网络爬虫或请求太多而导致API的性能严重下降,Dos和DDos。...源码(我还需要整理一下源码,现在有点乱):https://github.com/solenovex/ASP.NET-Core-2.0-RESTful-API-Tutorial

    1.7K20

    .NET Web 应用程序和 API 的安全最佳实践

    由于网络应用程序和应用程序编程接口(API)是我们数字基础设施不可或缺的一部分,确保它们的安全性变得前所未有的重要。在数据泄露和网络攻击日益频发的当下,遵循保障应用程序安全的最佳实践至关重要。....NET 框架为开发人员提供了一套强大的工具,用于构建安全、健壮的网络应用程序和 API。...身份验证与授权 保障网络应用程序和 API 的安全,首先要确保只有经过身份验证和授权的用户才能访问敏感资源。.NET 提供了多种方式来实现可靠的身份验证和授权。...通过实施诸如 JWT、OAuth2 和 OpenID Connect 等可靠的身份验证和授权机制,并利用像 IdentityServer 和 ASP.NET Core Identity 这样强大的框架,...你可以确保你的网络应用程序和 API 是安全的,并且只有授权用户才能访问。

    2.1K10

    连贯NHibernate 1.0正式发布

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

    92370

    让IIS支持.NET Web Api PUT和DELETE请求

    前言     有很长一段时间没有使用过IIS来托管应用了,今天用IIS来托管一个比较老的.NET Fx4.6的项目。...发布到线上后居然一直调用不同本地却一直是正常的,关键是POST和GET请求都是正常的,只有PUT和DELETE请求是有问题的。...IIS默认情况下拒绝处理PUT和DELETE请求的原因是出于安全考虑。PUT和DELETE方法被设计为具有写入和删除数据的能力,如果未正确配置和保护,可能会导致潜在的安全漏洞。...为了防止未经授权的访问和潜在的攻击,IIS默认情况下仅允许GET和POST请求,并拒绝处理PUT和DELETE请求。这样可确保服务器上的文件只能通过受限的方法进行修改和删除。...这个配置适用于需要使用 PUT 和 DELETE 请求的应用程序或需要托管模块对所有请求进行处理的情况。在实际应用中,请根据需要和安全性考虑进行评估和使用。

    1.1K30
    领券