2011-12-22 4 views
4

Я знаю различия на высоком уровне между linq и sql и сущностью, однако я надеюсь получить совет от кого-то, кто уже сделал сам переключатель, или имеет достаточно опыт обоих. Исходя из сильного фона linq to sql, насколько реализованы и детали низкого уровня, есть ли какие-то важные вещи, которые мне нужно знать, когда я начинаю кодировать мой новый проект уровня доступа к данным с инфраструктурой сущности?Нужна помощь: переход от Linq к SQL к платформе Entity

Я уже создал свой файл edmx (я выбрал подход, основанный на базе данных), и все это кажется подозрительно идентичным linq для sql до сих пор. Что мне поможет - это короткий список элементов, например, в linq to sql, вы [этот] [этот путь], но в инфраструктуре сущности вы захотите сделать это [таким образом].

Извините, если это странный вопрос, но любые попытки ответов были бы весьма признательны. Благодаря!

+0

, а NH является более зрелым и имеет богатый набор функций, просто говоря «использовать NH» не поможет ОП. –

+2

Возможный дубликат: http://stackoverflow.com/questions/8676/entity-framework-vs-linq-to-sql – Strillo

+0

Я не думаю, что в EF4 есть что-то принципиально иное - вы можете в значительной степени заниматься своим как и в Linq-to-SQL. EF4 предложит * дополнительные функции * (например, сценарии наследования таблиц, сопоставление одного объекта с несколькими таблицами или одну таблицу с несколькими типами объектов), но это «дополнительные», которые на самом деле не мешают вам. –

ответ

1

В новом проекте между L2S и EF я предлагаю EF (рассмотрим Entity Framework версии 4.0 или выше, НЕ используйте ранние выпуски EF).

В то время как Linq to SQL является отображением класса в таблицу EF 4 является полным инструментом ORM (Object Relational Mapping) с различными сценариями сопоставления.

С EF у вас есть много гибкости:

  • базы данных Первый подход
  • Модель Первый подход
  • кодекс Первый подход

и сильная интеграция с LINQ Provider.

Единичное тестирование с Linq2SQL - это кошмар. С EF у вас есть классы POCO (Plain Old CLR Object) из коробки. В L2S класс сущности тесно связан с пространством имен L2S.

EF может помочь вам и в сценариях, связанных с доменом.

Microsoft рассматривает теперь EF первый метод доступа к базе данных, и он является базой для других сервисов, таких как службы RIA или базы данных базы данных MVC.

LinqToSql теперь является первой методологией доступа к базе данных только в сценариях Windows Phone.

+0

Что вы подразумеваете под «первым методом доступа к базе данных»? Очевидно, ни одна из этих технологий не была первой. –

+0

Извините за мой плохой английский ... Я имею в виду, что в технологиях доступа к базе данных (ADO.NET, LinqToSql, EF) EF является предпочтительным для Microsoft, и его усилия сосредоточены на нем. –

0

NH гораздо лучше ... но опять же, как EF является Microsoft ребенок, он будет расти с течением времени GOE