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