И LINQ, и Entity Framework считаются ORM? - PullRequest
0 голосов
/ 14 ноября 2009

В чем разница между LINQ и Entity Framework

И LINQ, и Entity Framework считаются ORM?

В чем преимущества обоих.

Ответы [ 4 ]

5 голосов
/ 14 ноября 2009

LINQ - базовая технология, как уже отмечали другие.

Возможно, вы говорите о Linq-to-SQL - довольно простом и понятном ORM для использования с SQL Server.

Entity Framework также является ORM - а затем и некоторыми! Это совсем другой зверь, правда.

Отлично подходит для Linq-to-SQL

  • если вам нужно очень простое отображение 1: 1 - одна таблица соответствует одному классу в вашей доменной модели
  • если вам больше ничего не нужно, кроме SQL Server (Linq-to-SQL больше ничего не поддерживает)
  • если вы хотите быстро начать работу

Entity Framework с другой стороны

  • поддерживает несколько бэкэндов (SQL Server, Oracle, Firebird - другие, вероятно, последуют)
  • поддерживает полную концептуальную стратегию моделирования данных - вы определяете физическую модель в базе данных, концептуальную модель в вашем приложении и соответствие между двумя
  • дает вам возможность обрабатывать такие вещи, как сопоставление одного бизнес-объекта с несколькими таблицами
  • поддержка таблиц на иерархию и сценариев наследования таблиц на класс

Вкратце: Linq-to-SQL - это отличный, простой и простой ORM для SQL Server - используйте его, если он делает все, что вам нужно. Entity Framework - это совсем другой зверь, гораздо более способный, но и гораздо более сложный, гораздо больший - идеально подходит для вашего следующего критически важного корпоративного приложения, но, вероятно, излишним для вашего личного блогового приложения: -)

3 голосов
/ 14 ноября 2009

LINQ - это набор расширений .NET Framework, которые включают в себя интегрированные с языком операции запроса, установки и преобразования.

Entity Framework - это структура объектно-реляционного отображения (ORM) для .NET Framework.

3 голосов
/ 14 ноября 2009

LINQ позволяет запрашивать множество различных наборов данных, используя один и тот же синтаксис. Например, с помощью LINQ вы можете запросить коллекцию строк или собственную коллекцию объектов или массив или XML, например, все с использованием того же синтаксиса, который похож на синтаксис SQL.

Entity Framework - это ORM, а также LINQ to SQL. Оба используют LINQ для абстрагирования фактического SQL, вызываемого для запроса записей из БД.

Что здорово в LINQ, так это то, что он абстрагирует детали, необходимые для запроса каждого отдельного набора данных. До LINQ мы были вынуждены знать, как запрашивать каждый тип данных, который во многих случаях сильно отличался.

Различные наборы данных могут участвовать в LINQ, создав для него поставщика. Например, теперь вы можете использовать LINQ для доступа к Twitter с помощью LINQ to Twitter Provider .

0 голосов
/ 14 ноября 2009

linq означает «Интегрированный в язык запрос», так что вы можете использовать его для перевода запроса tsql в код c #.

Entity Framework - это, по сути, фреймворк, позволяющий моделировать ваш домен сверху вниз

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