如何选择适合的 ORM 或应用程序?例如,如果我们使用的是 Linq,那么为啥不休眠

Posted

技术标签:

【中文标题】如何选择适合的 ORM 或应用程序?例如,如果我们使用的是 Linq,那么为啥不休眠【英文标题】:How to choose that which ORM would be feasible for or Application? e.g if we are using Linq then why not hibernate如何选择适合的 ORM 或应用程序?例如,如果我们使用的是 Linq,那么为什么不休眠 【发布时间】:2010-06-30 11:55:58 【问题描述】:

如何选择对 Web 应用程序可行的 ORM?例如,如果我们使用的是 Linq,那么为什么不使用 nhibernate?以及哪个更好,为什么

【问题讨论】:

这方面的帖子很多,请查看此页面右侧靠近底部的相关问题... [nhibernate、实体框架、活动记录或 linq2sql ](***.com/questions/1377236/…)的可能重复项 【参考方案1】:

每个声称支持 linq 的 ORM,都在一定程度上支持 linq,但是实现的完整性差异很大,有时是因为 ORM 的实现方式,有时是因为 Linq 实现的质量。

即使 Linq to Sql 和 Entity Framework v4 之间的 Linq 实现也有很大差异,如果您再查看 NHibernate 或 LlblGenPro 的实现,您会发现在 sql 中可能存在的查询并不以相同的方式支持,如果完全没有,或者说支持效率不同。

您确实需要根据您倾向于/想要执行的数据检索类型来评估特定 ORM 的 Linq 实现。

【讨论】:

【参考方案2】:

我认为很大程度上取决于您正在构建的应用程序。

另一方面,NHibernate 非常强大,并且可以自定义以执行任何操作。我们最近抛弃了旧的 ORM 并迁移到 NHibernate,因为没有它我们就无法做我们需要做的事情。

【讨论】:

喜欢?我很想知道,因为我很快就会面临同样的标准研究。【参考方案3】:

您可以将 Linq 与 nHibernate 一起使用。但是以最流行的 ORM 为例。开发人员使用最多的一种。

更容易找到开发人员来维护和增强项目,也更容易在 Google 上找到问题的解决方案。

我仍在使用 nHibernate,但新版本的 Entity Framework 看起来很有希望。

当 Entity Framework 变得像 nHibernate 一样强大时,我会切换。

【讨论】:

以上是关于如何选择适合的 ORM 或应用程序?例如,如果我们使用的是 Linq,那么为啥不休眠的主要内容,如果未能解决你的问题,请参考以下文章

哪个更适合缩放? ORM 的 distinct() 或 python set()

Python常用的ORM/orm框架

Python常用的ORM/orm框架

Python常用的ORM/orm框架

什么是适合我们需求的轻量级 ORM?

Bookshelfjs ORM 如何获取或查看其构建的 SQL 语句