LINQ против nHibernate - PullRequest
       22

LINQ против nHibernate

2 голосов
/ 02 марта 2010

Вопрос. До сих пор я не знал, что LINQ - это инструмент ORM. Я всегда видел его как новый вид языка запросов SQL. Поэтому я совсем недавно начал использовать nHibernate.

Итак, мой вопрос:
Каковы будут преимущества и недостатки LINQ по сравнению с nHibernate?

Насколько я выяснил, различия в том, что LINQ требует .NET> 2.0 (если вы не взломали его, что небезопасно и незаконно), тогда как nHibernate работает с> = 2.0.
И это для LINQ, вам нужно иметь dll поставщика / стороннего поставщика LINQ, если вы не используете MS-SQL.
В частности, я не знаю, какой из них быстрее / проще, есть ли поставщики LINQ для всех баз данных, поддерживаемых nHibernate, и насколько хорошо LINQ работает с моно.

Ответы [ 4 ]

6 голосов
/ 02 марта 2010

Linq не является инструментом ORM. Linq2Sql и платформа Entity - это инструменты Microsoft ORM, использующие Linq. Я нашел эту статью , сравнивающую NHibernate с Entity Framework 4,0 весьма поучительной.

Подводя итог: NHibernate давно существует и испытан, и свободно использовать - это радость. К сожалению, NHibernate страдает в отделе документации, но это ОС, так что вы можете копаться в коде. EF 1.0 был ужасен, но 4.0 намного лучше. Это продукт MS, поэтому он широко пропагандируется, поддерживается, и в Интернете есть много примеров. 4.0 пока еще бета.

3 голосов
/ 02 марта 2010

LINQ не является ORM. LINQ - это просто технология запросов / библиотека со специальным синтаксисом в C #, а LINQ и NHibernate являются дополнительными технологиями. Есть даже L INQ2NHiernate .

LINQ2SQL - это ORM. Что касается скорости, я бы не стал сильно беспокоиться об этом, если вы не создаете программное обеспечение для бирж или что-то подобное, где миллисекунды абсолютно необходимы. Я считаю, что даже StackOverflow работает на LINQ2SQL или работал в какой-то момент, но я могу ошибаться.

1 голос
/ 05 августа 2010

Помните, что LinqToSql действительно LinqToMsSqlServer - вы заблокированы, если вы идете по этому маршруту ...

1 голос
/ 02 марта 2010

Есть 2 провайдера linq для NHibernate. Они поддерживают все базы данных, которые поддерживает NHibernate

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...