LINQ to SQL против ADO.Net

Задание для строковых потоков, см. его в прямом эфире: http://ideone.com/e8GjMg

#include 
#include 

int main()
{
    std::istringstream iss(" abcd 1234    -6242          1212");

    std::string s;
    int a, b, c;

    iss >> s >> a >> b >> c;

    std::cout << s << " " << a << " " << b << " " << c << std::endl;
}

Печать

abcd 1234 -6242 1212

30
задан Mehrdad Afshari 22 March 2009 в 15:39
поделиться

5 ответов

ADO.NET является базовым API доступа к данным для Платформы.NET (во многом как JDBC в Java). Это было вокруг начиная с первого выпуска.NET.

LINQ к SQL является платформой доступа к данным, основывался на ADO.NET и новых функциях языка, который делает доступные данные SQL Server исходно в объектно-ориентированном стиле программирования.

29
ответ дан Mehrdad Afshari 22 March 2009 в 15:39
поделиться
  • 1
    Ваше более чистое решение не работает в IE8. В IE8 window.postMessage возвращается как объект – KingOfHypocrites 26 May 2014 в 02:14

ADO.NET является рядом библиотек классов, которые обеспечивают инфраструктуру доступа основных данных сверху.NET Основные Библиотеки классов. Это также содержит основную инфраструктуру LINQ, такую как статический класс Счетных (которые обеспечивают LINQ для Возражения), и интерфейс, чтобы сделать основной запрос против реляционных данных, таких как IQueryable.

LINQ к SQL НЕ является платформой доступа к данным.

ADO.NET может быть принят как платформа доступа к данным, но это может вводить в заблуждение, так как ADO.NET не является отдельным продуктом. ADP.NET является действительно частью Платформы.NET.

LINQ к SQL является просто реализацией LINQ для функционирования как поставщика данных, которые соединяются, и отображается непосредственно на SQL Server. Внизу LINQ к SQL, содержит тяжелые использования классов ADO.NET в Системе. Данные. Пространство имен SqlClient, таким образом, это реализовано сверху ADO.NET, но фокусирующийся на и это характерно для доступа к SQLServer.

1
ответ дан Eriawan Kusumawardhono 22 March 2009 в 15:39
поделиться
  • 1
    Это просто создает копию. Это не размораживает его. – Jack Giffin 19 July 2018 в 12:42

Существует довольно большой набор различий между этими двумя технологиями, которые не могут быть действительно покрыты коротким ТАК сообщение, но я попытаюсь покрыть, выделяет

  • In Linq2Sql, Вы переписываете свои запросы в объектах памяти. Под капотом, хотя код Вы пишете, переводится в деревья выражений и далее переводится в SQL во времени выполнения, куда запрос на самом деле выполняется. В ADO.NET Вы непосредственно создаете SQL-запросы, которые выполняются против сервера.
  • Linq2Sql имеет прямую поддержку языка в C# и VB.Net. ADO.NET оказывает поддержку для основанного на строке запроса, которые имеют 0 поддержки языка кроме просто необработанной строки.
  • поддержка языка в Linq2Sql делает запросы безопасными с точки зрения типов. В ADO.NET все результаты запроса должны быть преобразованы в соответствующий тип, который по существу удаляет проверки безопасности типов.
7
ответ дан JaredPar 22 March 2009 в 15:39
поделиться
  • 1
    Это технически корректно до видоизменения существующего объекта. Однако можно копировать/клонировать существующий объект и видоизменить it' s свойства теперь. См. ответ Andennour TOUMI ( stackoverflow.com/a/26752410/1251309 ) для того, как выполнить это. – Levi Roberts 2 January 2015 в 00:15

Необходимо запустить с понимания, что LINQ является намеченной парадигмой Microsoft для запросов всех видов структурированных данных декларативно с одним инструментом - думают, "что Одно Кольцо Управляет Ими Всеми". LINQ к SQL является просто первым проявлением, реализованным для запросов реляционных баз данных.

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

ADO.NET рассматривает ООП как, что это, и реляционные данные как, что это и ожидает, что Вы сделаете каждого правильно на его собственных условиях.

преимущества и недостатки этих двух открыты для дебатов. Но если Вы согласитесь, что мастера Информатики Microsoft придумали что-то вроде uber-абстракции для запросов структурированных данных, тогда Вы, вероятно, захотите переместиться в это направление. Существует некоторый признак, что другие поставщики программного продукта готовы манипулировать, таким образом, это даже не может закончить тем, что было полностью собственным, который был бы хорошей вещью.

8
ответ дан dkretz 22 March 2009 в 15:39
поделиться
  • 1
    Я придерживался бы с: возвратитесь!! window.postMessage; – KingOfHypocrites 26 May 2014 в 02:17

Кроме того, не действительно уверенный, если я прямо здесь. Но ADO.NET всегда работает 'офлайн' с Вашими данными. Я думаю, что LINQ2SQL работает онлайн с Вашими данными.

2
ответ дан Wim Haanstra 22 March 2009 в 15:39
поделиться
  • 1
    С этим Вы просто раздаете объект. Вы не размораживаете его. – nik10110 28 February 2019 в 01:37
Другие вопросы по тегам:

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