LINQ 与 nHibernate

标签 linq nhibernate orm

问题:直到现在,我还不知道 LINQ 是一个 ORM 工具。我一直将其视为某种新型 SQL 查询语言。所以我最近开始使用 nHibernate。

所以我的问题是:
与 nHibernate 相比,LINQ 的优点和缺点是什么?

据我发现,区别在于 LINQ 需要 .NET > 2.0(除非你破解它,这是不安全且非法的),而 nHibernate 适用于 >=2.0。
对于 LINQ,如果您不使用 MS-SQL,则需要有供应商/第 3 方 LINQ 提供程序 dll。
我特别不知道的是哪一个更快/更简单,是否有适用于 nHibernate 支持的所有数据库的 LINQ 提供程序,以及 LINQ 与 mono 的配合情况如何。

最佳答案

Linq 不是 ORM 工具。 Linq2Sql 和 Entity 框架是使用 Linq 的 Microsoft ORM 工具。我发现this article将 NHibernate 与 Entity Framework 4.0 进行比较非常有启发性。

总结一下:NHibernate 已经建立并经过了长期测试,而 Fluent 使用起来很愉快。不幸的是,NHibernate 在文档部门受到了影响,但它是操作系统,因此您可以深入研究代码。 EF 1.0 很糟糕,但 4.0 好多了。它是 MS 产品,因此得到了大量宣传和支持,并且网络上有很多示例。 4.0 目前仍处于测试阶段。

关于LINQ 与 nHibernate,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2362653/

相关文章:

nhibernate - 为什么 Entity Framework 不支持 ODBC?

python - Django 查询中的列比较

c# - (N)Hibernate - 是否可以将多个表动态映射到一个类

c# - LINQ Web API 上的错误序列化

sql - Linq - 类型 'System.Guid' 的值无法转换为 'String'

nhibernate - 仅使用 NHibernate 保留基类

grails - 如何让 Grails 将我的 String 字段映射到 Clob?

c# - Linq,如何使用子查询?

c# - LINQ 中的条件 WHERE

NHibernate MVVM session 最佳实践