NHibernate已经足够了吗?

 我来答
拔地层云3925
推荐于2016-02-13 · 超过70用户采纳过TA的回答
知道答主
回答量:131
采纳率:80%
帮助的人:63.6万
展开全部
并且在博客园开了一个专栏写了一系列的文章来介绍如何使用它。到2005年后半年的时候,国内类似的代码生成工具已经开始“泛滥”了,O/RM一下子流行起来。在2005年底,我开始关注NHibernate,并逐渐转移到NHibernate上面来,对XCodeFactory的依赖也越来越小了。毕竟,NHibernate是如此得强大,以至于我不再需要XCodeFactory。
但是,对于经常要编写数据库访问代码的.NET开发人员而言,拥有NHibernate就已经足够了吗?我认为是不够的。NHibernate在基于对象方面做得非常好,这也是它初始的目标,它非常出色地实现了这个目标。但是在O/RM之外了?比如,我们需要进行批量的更新、删除等,使用NHibernate进行类似的操作不仅繁琐而且效率低下。当然,这些内容不是NHibernate的职责,NHibernate也不用关心这些O/RM之外的东西。但是,我们也许都知道了,NHibernate需要另外一个工具来作为有力的补充,这个补充主要基于关系、而不是对象来操作数据库中的数据。
有人选择了EnterpriseLibrary中的数据访问Block作为O/RM之外的补充,这很不错。而DataRabbit是另外一个选择。
相信来我blog的朋友都一定知道ESFramework,ESFramework源于EnterpriseServerBase类库的Network命名空间,而DataRabbit来源于EnterpriseServerBase类库的DataAccess命名空间,EnterpriseServerBase.DataAccess也是XCodeFactory核心库。DataRabbit中包含多个基于关系的数据访问接口,并且内置了对SqlServer、Oracle、Ole的支持,如果要支持其它类型的数据库,只需实现相应的接口即可,并且可以插件的形式提供。
(1)简化通常的数据访问,体现在IADOBase接口,IADOBase接口和以下所有接口均独立于数据库类型。
(2)数据分页 IPagerManager
(3)事务 Transaction
(4)分布式事务 Distributed
(5)操作数据大纲(DataSchema) IDataSchemaOperator ,比如获取某个表的大纲结构(Column信息、主键信息、外键信息),依据大纲在指定的数据库中创建表
(6)数据库适配器插件 IADOBaseAddin
(7)简单数据迁移 SimpleDataTransfer
这些接口将在后面的系列文章中逐一介绍。下面也看一个分页的例子,来点感性的认识。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式