Вопрос: До сих пор я не знал, что LINQ является инструментом ORM. Я всегда рассматривал это как новый тип языка запросов SQL. Поэтому я совсем недавно начал использовать nHibernate.
Так что мой вопрос:
Что бы преимущества и недостатки LINQ по сравнению с NHibernate?
Насколько я понял, различия в том, что LINQ требует .NET> 2.0 (если вы не взломали его, что является небезопасным и незаконным), а nHibernate работает с> = 2.0.
И что для LINQ вам необходимо иметь DLL поставщика поставщика/стороннего поставщика LINQ, если вы не используете MS-SQL.
В частности, я не знаю, какой из них быстрее/проще, и есть ли поставщики LINQ для всех баз данных, поддерживаемых nHibernate, и насколько LINQ работает с моно.LINQ vs. nHibernate
ответ
Linq не является инструментом ORM. Linq2Sql и структура Entity являются инструментами Microsoft ORM с использованием Linq. Я нашел this article, сравнивая NHibernate с Entity Framework 4,0, довольно просветительский.
Подводя итог: NHibernate, давно установлен и протестирован, а Fluent - это радость в использовании. К сожалению, NHibernate находится в отделе документации, но это ОС, поэтому вы можете вникнуть в код. EF 1.0 был ужасен, но 4.0 намного лучше. Это продукт MS, поэтому он сильно евангелизирован, поддерживается, и в Интернете есть много примеров. 4.0 все еще остается бета-версией.
Никогда не читайте nHibernate doc в любом случае. –
LINQ не является ORM. LINQ - это просто технология запросов/библиотека со специальным синтаксисом в C#, а LINQ и NHibernate - дополнительные технологии. Существует даже L INQ2NHiernate.
LINQ2SQL - это ORM. Что касается скорости, я бы не стал слишком беспокоиться об этом, если вы не делаете биржевое программное обеспечение или что-то в этом роде, где миллисекунды абсолютно важны. Я считаю, что даже StackOverflow работает на LINQ2SQL или в какой-то момент, но я могу ошибаться.
ОК, поэтому с LINQ я имел в виду LINQ2SQL ;-)) Я читал где-то еще, что они переключаются с LINQ на nHibernate по соображениям производительности , Поэтому я не уверен, что это не важно. –
Linq также отлично работает с vb.net! – ScottE
Есть 2 провайдера linq для NHibernate. Они поддерживают все базы данных NHibernate поддерживает
Помните, что LinqToSql действительно LinqToMsSqlServer - вы заперты, если вы берете этот маршрут ...
- 1. Linq to NHibernate vs. ICriteria
- 2. NHibernate vs LINQ to SQL
- 3. Производительность NHibernate: Session.Criteria vs LINQ in-memory
- 4. Nhibernate 3.2 Query vs QueryOver
- 5. nhibernate Linq
- 6. NHibernate vs. EF 4.1+
- 7. Взаимодействующий свободный NHibernate + NHibernate + Linq To NHibernate
- 8. Linq To Nhibernate - Разделенные запросы
- 9. Fetch vs FetchMany в поставщике услуг NHibernate Linq
- 10. NHibernate HQL против CriteriaAPI против QueryOver vs Linq. Производительность
- 11. NHibernate CallSessionContext vs ThreadStaticSessionContext
- 12. Subsonic Vs NHibernate
- 13. Lightspeed vs NHibernate
- 14. NHibernate vs. Entity Framework
- 15. NHibernate ISet Vs IList
- 16. .NET Obfuscation vs. NHibernate
- 17. NHibernate Fluent vs. Attributes
- 18. Свойства сопоставления NHibernate vs fluent NHibernate
- 19. nHibernate Linq Projection
- 20. NHibernate - ограничения LINQ
- 21. Nhibernate Linq В разделе
- 22. Linq Expression in nHibernate
- 23. Linq Nhibernate покинул присоединиться
- 24. LINQ TO Nhibernate Count
- 25. NHibernate Linq - Duplicate Records
- 26. NHibernate LINQ + PLINQ
- 27. Linq to NHibernate
- 28. Extend NHibernate Linq Provider
- 29. NHibernate Linq Provider вопрос
- 30. Nhibernate LINQ - проблемы кэширования
Просто для уточнения, LINQ был частью системы .Net 3. –
Хорошо, вы заняты запутыванием вещей «Linq», которые являются языком запросов, и «Linq to SQL», который является ORM. Вы можете использовать Linq для запроса NHibernate, если вы выберете ... – Murph
Я думаю, что я собираюсь остаться с nHibernate. –