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