需要大型.net数据访问层的建议

时间:2009-06-28 12:20:55

标签: .net database nhibernate orm devforce

启动一个新项目,它是针对一个非常大的(300个表)遗留数据库的100%新开发。数据库与业务模型的匹配程度并不高,所以我最初想到使用ORM的地方。

我得到了一个与NHibernate合作的概念证明......但是有很多管理人员推迟使用“不支持的”“开源”工具。

有关其他ORM解决方案的建议吗?或关于NHibernate论证的建议?

非常感谢。

3 个答案:

答案 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出现的时候,微软创建并杀死了多少数据访问解决方案?

  • ADO
  • ADO.NET
  • 强类型数据集
  • LINQ2SQL
  • 实体框架
  • Entity Framework V2

在此期间,Hibernate / NHibernate变得越来越成熟。它不会消失。

答案 2 :(得分:1)

我在最近的两个项目中使用了Entity Framework,这些项目具有相似数量的表。它对我们来说效果很好。我们将表拆分为几个Entity Framework模型,最大值为ca.一个模型中有80个表。

实体框架更易于销售给管理层,因为它是微软。