启动一个新项目,它是针对一个非常大的(300个表)遗留数据库的100%新开发。数据库与业务模型的匹配程度并不高,所以我最初想到使用ORM的地方。
我得到了一个与NHibernate合作的概念证明......但是有很多管理人员推迟使用“不支持的”“开源”工具。
有关其他ORM解决方案的建议吗?或关于NHibernate论证的建议?
非常感谢。
答案 0 :(得分:6)
如果您的管理层愿意为商业ORM付款,那么您应该明智地考虑这条路线。
你对NHibernate的一个限制(目前)(除非你愿意使用NHibernateContrib项目中的Alpha代码)是你目前没有使用LINQ / IQueryable机制来查询使用越来越多的限制熟悉的LINQ语法。您仍将拥有非常灵活的Criteria和HQl机制,这取决于您是否要开始投资以“LINQ方式”做任何事情?
从我的研究到目前为止,你有很多选择(都支持LINQ查询):
原始实体框架(有商业合作伙伴也在其上添加工具和功能。)
Lightspeed似乎是一种LINQ到[许多数据库],具有良好的设计时间支持。
Telerik OpenAccess看起来与Lightspeed类似。
IdeaBlade DevForce建立在EntityFrmework之上,但增加了一些可用性功能。如果您不使用SQL Server,那么使用IdeaBlade还需要从DevArt或DataDirect等单独的供应商处购买ORACLE-EF提供程序。
LLBLGen Pro良好的功能和积极的发展。已经很久了。
DevArt也为LINQ做了很好的数据访问工具和特定于供应商的提供程序。
[更新] Production-ready LINQ support现已在NHibernate中推出!
答案 1 :(得分:4)
你为什么不向管理层询问这个?
在Hibernate / NHibernate出现的时候,微软创建并杀死了多少数据访问解决方案?
在此期间,Hibernate / NHibernate变得越来越成熟。它不会消失。
答案 2 :(得分:1)
我在最近的两个项目中使用了Entity Framework,这些项目具有相似数量的表。它对我们来说效果很好。我们将表拆分为几个Entity Framework模型,最大值为ca.一个模型中有80个表。
实体框架更易于销售给管理层,因为它是微软。