Нибернат против Линка
LINQ
LINQ расшифровывается как Language-Integrated Query. По сути, LINQ обращается к текущей модели разработки баз данных в контексте объектно-ориентированной модели программирования. Однако для всесторонней поддержки LINQ требуются некоторые расширения в используемом языке, поскольку Linq не является полным инструментом объектно-реляционного сопоставления (ORM). Такие расширения повышают производительность и эффективность, обеспечивая, таким образом, более короткий, более значимый и более выразительный синтаксис для манипулирования данными..
LINQ - это модель программирования, которая вводит запросы как первоклассную концепцию в любой язык Microsoft NET. Другими словами, он рассматривается как язык запросов, в основном используемый с MS SQL Server. Многие считают Linq довольно полезным в небольших приложениях, где потребность в базе данных не является существенной.
NHibernate
NHibernate - это объектно-реляционное отображение с открытым исходным кодом или решение ORM для платформы Microsoft .NET. Он разработан аналогично библиотеке Hibernate в Java, которая предоставляет сервисы для переноса объектов платформы .NET в базовую базу данных и из нее..
Он в первую очередь предназначен для разработчиков, ориентирующихся на домен, а не на базу данных. NHibernate может применяться практически с любой системой управления базами данных (СУБД).
У NHibernate, лишенного всякого смысла, нет ограниченного языка запросов. Тем не менее, он достаточно гибок в отношении видов определений объектов, которые могут быть сопоставлены со структурами таблиц. NHibernate предоставляет больше возможностей, так как можно настроить множество аспектов с точки зрения доступа к данным. Это почти безгранично.
Резюме:
1. С Linq база данных уже существует, и отношения и некоторое программирование будут зависеть от того, как база данных определена.
2. В отличие от Linq, NHibernate является открытым исходным кодом.
3. Nhibernate - это инструмент ORM, в то время как Linq - неполный инструмент ORM, так как он требует дополнительных расширений..
4. Linq - это, прежде всего, язык запросов, в то время как NHibernate имеет ограниченный язык запросов..
5. Linq гораздо полезнее в небольших приложениях, где нет большой зависимости от баз данных..
6. NHibernate очень гибкий и предоставляет больше возможностей.