7

启动一个新项目是针对一个非常大(300 个表)的旧数据库进行 100% 的新开发。数据库与业务模型的匹配度并不高,所以我最初的想法是在哪里使用 ORM。

我得到了一个与 NHibernate 很好地合作的概念证明......但是在使用“不受支持的”“开源”工具时得到了很多管理层的反对。

关于使用其他 ORM 解决方案的任何建议?或关于 NHibernate 论点的建议?

非常感谢。

4

3 回答 3

6

如果您的管理层愿意为商业 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 支持!

于 2009-06-28T12:37:03.650 回答
4

你为什么不问管理层这个?

在 Hibernate/NHibernate 出现期间,Microsoft 创建并取消了多少数据访问解决方案?

  • ADO
  • 网络
  • 强类型数据集
  • LINQ2SQL
  • 实体框架
  • 实体框架 V2

这段时间Hibernate/NHibernate已经越来越成熟。它不会消失。

于 2009-07-02T20:12:24.640 回答
1

我在最近的两个项目中使用了 Entity Framework,它们的表数量相似。它对我们来说效果很好。我们将表拆分为几个实体框架模型,最大 ca。一个模型中有 80 张桌子。

Entity Framework 更容易出售给管理层,因为它是 Microsoft。

于 2009-06-28T12:36:24.040 回答