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

标签 .net database nhibernate orm devforce

启动一个新项目,它是针对一个非常大的(300 个表)遗留数据库的 100% 新开发。数据库与业务模型不太匹配,所以我最初的想法是在何处使用 ORM。

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

对使用其他 ORM 解决方案有什么建议吗?或对 NHibernate 参数的建议?

非常感谢。

最佳答案

如果您的管理层愿意为商业 ORM 付费,那么您最好考虑这条路线。

NHibernate(除非您愿意使用来自 NHibernateContrib 项目的 Alpha 代码)(除非您愿意使用来自 NHibernateContrib 项目的 Alpha 代码)(目前)的一个限制是,您目前没有奢侈地使用 LINQ/IQueryable 机制来使用越来越多的查询熟悉的 LINQ 语法。您仍将拥有非常灵活的 Criteria 和 HQl 机制,这取决于您是否想开始投资以“LINQ 方式”做所有事情?

根据我目前的研究,您有很多选择(都支持 LINQ 查询):

原始 Entity Framework (有商业合作伙伴也在其上添加工具和功能。)

Lightspeed看起来像是一种具有良好设计时支持的 LINQ-to-[大量 DB]。

Telerik OpenAccess看起来类似于 Lightspeed。

IdeaBlade DevForce建立在 EntityFrmework 之上,但增加了一些可用性特性。如果您不使用 SQL Server,那么使用 IdeaBlade 还需要从单独的供应商(例如 DevArt 或 DataDirect)购买 ORACLE-EF 提供程序。

LLBLGen Pro良好的功能范围和积极的发展。已经存在很长时间了。

DevArt还为 LINQ 提供良好的数据访问工具和特定于供应商的提供程序。

[更新] Production-ready LINQ support现在在 NHibernate 中可用!

关于.net - 需要有关大型 .net 数据访问层的建议,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1054827/

相关文章:

sql - 在 Oracle 11gR2 上使用 Union ALL 的大 View

sql - NHibernate 不一致的 sql 列别名

.net - 在 .NET 中操作 EPS/AI 文件

c# - 尽管 list<T> 在内部使用数组(固定的),但它如何动态工作?

java - 目标平台预先确定后,如何消除JIT的需要?

sql - 合并两个表而不破坏原始列的内容

mysql - PHP/MySQL - 计算数据库中有多少表包含特定名称

.net - ASP.NET MVC 中的用户身份验证和授权

NHibernate - 非法访问加载集合

.net - NHibernate 和多个数据库后端 - 架构