Entity Framework против LINQ to SQL

Вы также можете сделать следующее:

public static int[][] copy(int[][] src) {
    int[][] dst = new int[src.length][];
    for (int i = 0; i < src.length; i++) {
        dst[i] = Arrays.copyOf(src[i], src[i].length);
    }
    return dst;
}
806
задан Charles 8 March 2014 в 00:02
поделиться

9 ответов

LINQ к SQL только поддерживает от 1 до 1 отображения таблиц базы данных, представлений, sprocs и функций, доступных в Microsoft SQL Server. Это - большой API для использования для быстрой конструкции доступа к данным для относительно хорошо разработанных баз данных SQL Server. LINQ2SQL был сначала выпущен с C# 3.0 и.Net Платформой 3.5.

LINQ к Объектам (Платформа Объекта ADO.NET) является ORM (Объектный Реляционный Картопостроитель) API, который допускает широкое определение объектных моделей предметной области и их отношений ко многим различным поставщикам данных ADO.NET. По сути, Вы можете смешивание и подгонка много различных поставщиков базы данных, серверов приложений или протоколов для разработки агрегированного мэшапа объектов, которые создаются из множества таблиц, источников, сервисов, и т.д. Платформа ADO.NET была выпущена с.Net Платформой 3,5 SP1.

Это - хорошая вводная статья о MSDN: Представление LINQ к Реляционным Данным

470
ответ дан Kris 8 March 2014 в 00:02
поделиться

Если Ваша база данных будет проста и проста, LINQ к SQL сделает. При необходимости в логических/абстрактных объектах сверху таблиц то пойдите для Платформы Объекта.

12
ответ дан vintana 8 March 2014 в 00:02
поделиться

Существует много очевидных различий, обрисованных в общих чертах в той статье @lars, отправленный, но короткий ответ:

  • L2S сильно связывается - свойство объекта к определенному полю базы данных или более правильно объектного отображения на определенную схему базы данных
  • L2S будет только работать с SQL Server (насколько я знаю)
  • , EF позволяет отображать единый класс на несколько таблиц
  • , EF обработает отношения M-M
  • , EF будет иметь способность предназначаться для любого поставщика данных ADO.NET

, исходная предпосылка была L2S, для Быстрой разработки и EF для большего количества "enterprisey" n-tier приложения, но это продает L2S, немного короткий.

92
ответ дан JamesSugrue 8 March 2014 в 00:02
поделиться

LINQ к Действительно Мертвому SQL? Jonathan Allen для InfoQ.com

Matt Warren описывает [LINQ к SQL] как что-то, что ", как даже не предполагалось, существовало". По существу это, как просто предполагалось, было заместителем, чтобы помочь им разработать LINQ, пока реальный ORM не был готов.

...

масштаб Платформы Объекта заставил его пропускать.NET 3.5/Visual Studio крайних срока 2008 года. Это было завершено как раз к, к сожалению, именованной ".NET 3.5 Пакета обновления 1", который больше был похож на главную версию, чем пакет обновления.

...

Разработчикам не нравится [Платформа Объекта ADO.NET] из-за сложности.

...

с.NET 4.0, LINQ к Объектам будет рекомендуемым решением для доступа к данным для LINQ к реляционным сценариям.

107
ответ дан Zack Peterson 8 March 2014 в 00:02
поделиться

Я думаю, что быстрый и грязный ответ - то, что

  • LINQ к SQL является quick-easy, чтобы сделать это. Это означает, что Вы начнете более быстрые, и поставите более быстрый, если Вы будете работать над чем-то меньшим.
  • Платформа Объекта является всеобщим, беспощадным способом сделать это. Это означает, что Вы займете больше времени заранее, разработаете медленнее и иметь больше гибкости, если Вы будете работать над чем-то большим.
195
ответ дан Brad Tutterow 8 March 2014 в 00:02
поделиться

Мое впечатление - то, что Ваша база данных довольно огромна или очень плохо разработанная, если Linq2Sql не соответствует Вашим потребностям. У меня есть приблизительно 10 веб-сайтов, и больше и меньших все использование Linq2Sql. Я смотрел и платформа Объекта много раз, но я не могу найти серьезное основание для использования ее по Linq2Sql. Это сказало, что я пытаюсь использовать свои базы данных в качестве модели, таким образом, у меня уже есть от 1 до 1 отображения между моделью и базой данных.

В моем текущем задании у нас есть база данных с 200 + таблицы. Старая база данных с большим количеством плохих решений, таким образом, там я видел преимущество Платформы Объекта по Linq2Sql, но тем не менее я предпочту перепроектировать базу данных начиная с базы данных, является механизмом приложения и если база данных будет плохо разработана и медленная тогда, то мое приложение также будет медленным. Используя платформу Объекта на такой базе данных походит на quickfix для маскировки плохой модели, но это никогда не могло маскировать плохую производительность, которую Вы получаете от такой базы данных.

36
ответ дан terjetyl 8 March 2014 в 00:02
поделиться

Мой опыт с Платформой Объекта был менее, чем звездным. Во-первых, необходимо наследоваться базовым классам EF, поэтому сказать до свидания POCOs. Ваш дизайн должен будет быть вокруг EF. С LinqtoSQL я мог использовать свои существующие бизнес-объекты. Кроме того, нет никакой ленивой загрузки, необходимо реализовать это сами. Существует некоторая работа arounds там для использования POCOs и ленивой загрузки, но они существуют, по моему скромному мнению, потому что EF еще не готов. Я планирую возвратиться к нему после 4.0

51
ответ дан Jiyosub 8 March 2014 в 00:02
поделиться
  • 1
    Я думаю для тестирования, что это могло иметь значение. – Mark Peters 11 June 2010 в 17:00

Я думаю, необходимо ли разработать что-то быстрое без Странных вещей в середине, и Вам нужно средство, чтобы иметь объекты, представляющие Ваши таблицы:

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

7
ответ дан Anujith 8 March 2014 в 11:02
поделиться
  • 1
    @Justin - Спасибо. Я находился рядом с выполнением этого и также обобщением функции для взятия произвольного числа аргументов. Если Вы (или кто-либо еще) видите лучший способ для меня щипнуть названия переданных аргументов из вызова функции, сообщите мне. That' s, что я придумал на лету... – Josh O'Brien 17 February 2012 в 21:40

Ни один из них еще не поддерживает уникальные типы данных SQL 2008.

8
ответ дан 22 November 2019 в 21:17
поделиться
Другие вопросы по тегам:

Похожие вопросы: