Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 什么是NHibernate?_Asp.net_Database_Nhibernate - Fatal编程技术网

Asp.net 什么是NHibernate?

Asp.net 什么是NHibernate?,asp.net,database,nhibernate,Asp.net,Database,Nhibernate,作为我工作的后续行动。我是一名ASP.NET程序员,我想知道NHibernate将如何帮助我更轻松、更快地完成工作。假装我对尼伯内特一无所知。它是什么?它能为我做什么?nhibernate是一个ORM工具 dimecasts有一些可以让你开始的功能 你可以找到更多信息 还有更多关于谷歌的信息:)这里有很好的介绍和教程 在每一段视频中,他都会介绍nHibernate中的一个主题,然后在解释如何做不同的事情时,潜入一些代码。我发现它非常有用。NHibernate是一个ORM(对象关系映射器)工具。它

作为我工作的后续行动。我是一名ASP.NET程序员,我想知道NHibernate将如何帮助我更轻松、更快地完成工作。假装我对尼伯内特一无所知。它是什么?它能为我做什么?

nhibernate是一个ORM工具

dimecasts有一些可以让你开始的功能

你可以找到更多信息


还有更多关于谷歌的信息:)

这里有很好的介绍和教程

在每一段视频中,他都会介绍nHibernate中的一个主题,然后在解释如何做不同的事情时,潜入一些代码。我发现它非常有用。

NHibernate是一个ORM(对象关系映射器)工具。它基于数据库模式创建面向对象的模型

NHibernate的主要特点:
  • 自然编程模型-NHibernate支持自然的OO习惯用法;继承、多态性、组合和.NET集合框架,包括泛型集合

  • 原生.NET-NHibernate API使用.NET约定和习惯用法

  • 支持细粒度对象模型——集合和依赖对象的丰富映射

  • 没有构建时字节码增强功能-构建过程中没有额外的代码生成或字节码处理步骤

  • 查询选项-NHibernate解决了问题的两个方面;不仅要知道如何将对象放入数据库,还要知道如何再次将它们取出

  • 自定义SQL-指定NHibernate用于持久化对象的确切SQL。Microsoft SQL Server支持存储过程

  • 支持“对话”-NHibernate支持长期持久性上下文,分离/重新连接对象,并自动处理乐观锁定

  • 免费/开源-NHibernate根据LGPL(较小的GNU公共许可证)获得许可


NHibernate是ORM或对象关系映射器。与LINQ to SQL、Entity Framework、LLBLGen和其他工具一样,ORM工具不再需要编写存储过程来处理业务对象的公共数据访问(CRUD)。ORM工具要求您创建(手动或使用可视化设计器…取决于您选择的)映射规范,该规范跟踪对象的哪些属性映射到数据库中表和/或视图的哪些列。当您需要检索对象时,ORM工具会为您生成适当的SQL,并将其发送到数据库。当更新对象时,ORM不仅会创建SQL来为您插入、更新和删除……它还会批处理这些命令,以便将单个连接和批处理命令发送到数据库,并在事务中执行整个操作。ORM工具还可以通过允许您一次选择整个对象图来提高查询的效率,从而为任务生成最高效的SQL

使用ORM工具,您仍然需要查询,但是您可以使用ORM上下文或会话对象上的基本方法,或者使用该ORM的自定义查询语言。现在,包括NHibernate在内的大多数ORM也提供LINQ支持,允许您使用标准LINQ语法查询对象模型,然后将对象模型转换为针对数据库的SQL查询

或映射器的好处是,您可以将几乎所有的代码集中到域中,而不是在域和存储过程之间进行拆分。您减轻了数据库上的存储过程负载,在需要重构数据库时减少了重构数据库的障碍,不仅在您的域中,而且在数据库模式中提供了更大的业务灵活性。因为您不必编写SQL,尤其是如果您使用LINQ,您通常可以用更少的工作和更低的长期维护成本创建更高效的应用程序

除了不可避免地与DBA(如果您有)发生战争之外,映射器还可以为表带来相当大的好处,从而减少实施工作量,提高可维护性,并提供更大的业务灵活性


希望这能回答这个问题

您的第二个链接不可见。虽然这个链接可以回答这个问题,但最好在这里包含答案的基本部分,并提供链接供参考。如果链接页面发生更改,则仅链接的答案可能无效-