Mee*_*ary 43 database asp.net nhibernate
作为我上一个问题的后续跟进.我是一名ASP.NET程序员,我想知道NHibernate如何帮助我更轻松,更快地完成工作.假装我对NHibernate一无所知.它是什么,它能为我做什么?
jri*_*sta 82
NHibernate是一个ORM或对象关系映射器.与LINQ to SQL,Entity Framework,LLBLGen和其他工具在同一行中,ORM工具消除了编写存储过程以处理业务对象的公共数据访问(CRUD)的大部分需求.ORM工具要求您(手动或使用可视化设计器...取决于您选择的那个)创建一个映射规范,该规范跟踪对象的哪些属性映射到数据库中的表和/或视图的哪些列.当您需要检索对象时,ORM工具会为您生成适当的SQL,并将其发送到数据库.当需要更新对象时,ORM将不仅为您创建要插入,更新和删除的SQL ...它还将批处理这些命令,以便将单个连接和一批命令发送到数据库,在事务中执行整个事情.ORM工具还允许您一次性选择整个对象图,从而为任务生成最有效的SQL,从而提高查询效率.
使用ORM工具,您仍然需要查询,但是要么使用ORM的上下文或会话对象的基本方法,要么使用该ORM的自定义查询语言.目前,大多数ORM(包括NHibernate)也提供LINQ支持,允许您使用标准LINQ语法查询对象模型,而后者又针对您的数据库转换为SQL查询.
OR映射器的好处是,您可以将几乎所有代码集中到域中,而不是在域和存储过程之间进行拆分.您可以减轻数据库上的存储过程负担,从而在需要时减少重构数据库的障碍,不仅可以在您的域中提供更高的业务敏捷性,还可以提高数据库架构的业务灵活性.由于您不必编写SQL,特别是如果使用LINQ,您通常可以用更少的工作量创建更高效的应用程序,同时降低长期维护成本.
除了与您的DBA之间不可避免的战争(如果您拥有它们),OR映射器可以为表带来可观的好处,可以减少实施工作量,提高可维护性并提供更高的业务灵活性.
希望能回答这个问题.;)
这里有一个很好的介绍和教程,可以在夏天的NHibernate截屏视频中找到.
在每个视频中,他提供了对nHibernate主题的介绍,然后深入研究了一些代码,同时解释了如何做不同的事情.我发现它非常有用.