Подтвердить что ты не робот

LINQ или ADO.net Entity Framework - что узнать?

Немного разъяснения: я просматривал название Джулии Лерман Орайли на платформе Entity, и я сильно смутился.

У меня есть Charlie Calvert, связанный с LINQ, но из моей 10-минутной сессии с книгой Лермана выясняется, что LINQ - это LINQ to SQL, который, похоже, не обладает своим объектом DataContext и т.д.

В то время как Entity Framework - это будущее, но у него есть что-то, называемое Entity SQL, которое, как мне кажется, похоже на Transact-SQL. Теперь мой взгляд может быть немного ржавым, но вопрос в следующем:

Поскольку Entity Framework является основной лошадкой, поддерживаемой Microsoft, есть ли смысл изучать LINQ to SQL с помощью

        var numberGroups =
            from n in numbers
            group n by n % 5 into g
            select new { Remainder = g.Key, Numbers = g };

И я смущен, думая, что Entity SQL и LINQ - это две разные технологии, действительно ли сущность SQL на самом деле использует LINQ?

опубликуйте много ответов, которые я получил:

Хорошо, я новичок в этом, поэтому на этот раз я редактирую свой ответ;-) Большое спасибо за ваши полные, ускоренные и очень полезные ответы. С уважением MereMortal

4b9b3361

Ответ 1

LINQ!= LINQ-to-SQL

LINQ - это концепция, включая некоторую поддержку языка. Существует много реализаций: LINQ-to-SQL является одним из них: ADO.NET Data Services, Entity Framework LINQ-to-Entities, LINQ-to-Objects, LINQ-to-SQL, LINQ-to-Amazon, DbLinq и т.д..

Вы все еще используете LINQ с Entity Framework; действительно, LINQ-to-Entities является предпочтительным выбором, предоставляя статическую проверку времени компиляции. Entity SQL - это просто еще один механизм (в дополнение к LINQ-to-Entities) для запроса EDM (Entity Data Model).

Существуют 3 основные причины, по которым ESQL полезен:

  • это был единственный вариант в ранних предварительных просмотрах, когда LINQ-to-Entities все еще строились.
  • его можно использовать в некоторых сценариях, где нет объектной модели, например службы отчетов
  • существует небольшое число случаев, когда ESQL более выразителен

Для всего остального LINQ должен быть вашим инструментом для работы с Entity Framework.

Ответ 2

LINQ - это общий термин для языковых функций, которые позволяют писать запросы на С# или VB.NET в некотором хранилище данных. Существует LINQ to SQL, LINQ to Entities, LINQ to Objects и т.д.

LINQ to SQL тесно моделирует структуру физической базы данных. Он создает один тип для каждой таблицы в базе данных. Если ваша база данных изменится, ваш код LINQ to SQL должен будет измениться.

LINQ to Entities более подробно моделирует концептуальную структуру базы данных. Он позволяет вам сопоставлять физическую базу данных, но, например, позволяет создать один объект Person, который включает данные из таблиц Person и Contacts. Это позволяет вашим абонентам думать в терминах того, что означают данные, а не как данные реализованы.

Кроме того, Microsoft заявила, что будущая разработка в LINQ to SQL будет ограничена по сравнению с разработкой в ​​LINQ to Entities. Учитывая повышенную гибкость и тот факт, что LINQ to SQL не получит гораздо больше усовершенствований, я бы пошел с LINQ в Entities и Entity Framework.

Ответ 3

Как говорили другие, вы, вероятно, имеете в виду Linq to SQL vs Entity Framework.

Оба работают для SQL Server, но для других баз данных будет работать только Entity Framework. Кроме того, LINQ to SQL более или менее обесценивается. Так что идите с Entity Framework.

Ответ 4

Linq представляет собой конструкцию программирования, которая позволяет запрашивать ваши объекты

есть Linq to Sql, о котором я думаю, вы говорите.

вы всегда можете использовать linq для запроса объектов EF...

Ответ 5

Эй, эй. Замедляйте там.

Краткий ответ: платформа Entity Framework

Дольше ответ:

LINQ to SQL и Entity Framework - это технологии доступа к данным.

Linq, согласно MS,

LINQ - это набор расширений для .NET. Рамки, охватывающие язык, интегрированный запрос, набор и преобразования. Он расширяет С# и Visual Basic с родным языком синтаксис запросов и предоставляет класс библиотеки, чтобы воспользоваться этими возможности.

from: http://msdn.microsoft.com/en-us/netframework/aa904594.aspx

Как LINQ to SQL, так и Entity Framework имеют провайдеры Linq, которые позволяют использовать этот удивительный синтаксис при запросе на них.

Ответ 6

Entity Framework имеет LINQ to Entities, поэтому вы можете выполнить очень тот же запрос с EF. И мой ответ будет больше инвестировать в EF, потому что upcomming EFv4 кажется обещающим.

Ответ 7

Из того, что я понимаю, EF еще не готов к прайм-тайму, и он не поддерживает многие конструкторы LINQ, которые так легко работают сегодня в LINQ2SQL.

Если вы можете выполнить SQL Server для своего приложения, я говорю сегодня, узнаю LINQ2SQL. У вас будет больше возможностей при запросе при использовании LINQ.

Я делаю ставку, когда EF готов, это будет намного проще для вас, поскольку язык запросов должен быть передан.

Удачи.

Ответ 8

Я собираюсь в microsoft TehcDays в Монреале 2 и 3 декабря, и они сказали, что они больше не будут поддерживать LINQ в sql за несколько лет, поэтому лучше начать изучать LinQ для сущности (Entity framework).