Различие между Linq к Sql, Linq, введенными наборами данных, ADO.NET

пусть Powershell проанализирует и определит тип данных
Внутренне использует «Вариант» для этого ...
и вообще делает хорошую работу ...

param( $x )
$iTunes = New-Object -ComObject iTunes.Application
if ( $iTunes.playerstate -eq 1 ) 
    { $iTunes.PlayerPosition = $iTunes.PlayerPosition + $x }

или если вам нужно передать несколько параметров

param( $x1, $x2 )
$iTunes = New-Object -ComObject iTunes.Application
if ( $iTunes.playerstate -eq 1 ) 
    { 
    $iTunes.PlayerPosition = $iTunes.PlayerPosition + $x1 
    $iTunes.<AnyProperty>  = $x2
    }
15
задан marc_s 4 July 2009 в 10:48
поделиться

3 ответа

Сам по себе LINQ - это просто базовая технология («Интегрированный языковой запрос»), встроенная в C # 3.0 - ему нечего делать с базами данных. LINQ может использоваться против множества вещей - баз данных, XML, объектов в памяти, сущностей Entity Framework, Active Directory - вы называете это.

Linq-To-SQL - это легкая, простая технология только для MS-SQLServer, которая позволяет вы можете легко и красиво использовать таблицы SQL Server как реальные объекты в вашем .NET-приложении. Это «объектно-реляционный преобразователь», который упрощает работу с базами данных. Это только SQL Server, и Microsoft не будет расширять его дальше - он доступен также в .NET 4.0, но больше не будет развиваться.

ADO.NET - это базовая технология доступа к данным в. NET - он дает вам доступ к широкому спектру хранилищ данных, как реляционных, так и нереляционных. Это очень простая технология - вы работаете со своими данными на очень низком уровне, в сыром виде.

Вдобавок к этому у вас есть наборы данных ADO.NET, которые немного похожи на Linq-to-SQL в том, что они упростить работу с базами данных. В отличие от Linq-to-SQL, вы имеете дело не с вашими объектами из вашей модели предметной области в вашем .NET-коде, а вместо этого вы имеете дело с ориентированными на базу данных строками и столбцами точно так же, как они существуют. в базе данных. Это более прямое представление того, что находится в базе данных, оно находится на более низком уровне, оно очень тесно связано с макетом вашей базы данных, и оно не так "красиво" и просто в использовании, как объекты Linq-To-SQL - вы имеете дело со строками низкого уровня и столбцы и их значения.

22
ответ дан 1 December 2019 в 01:11
поделиться

Чтобы прояснить историю LINQ-to-SQL; он не «мертвый» - это полностью поддерживаемая часть платформы .NET, находящаяся в активной разработке (в Редмонде есть группа разработчиков LINQ-to-SQL).

Дело в том, что ] разработка новой функции в основном идет в EF, включая (надеюсь) преодоление разрыва между LINQ-to-SQL (который обычно очень популярен) и EF (который подвергался множеству критических замечаний).

Например, EF в 4.0 поддерживает объекты POCO, такие как LINQ-to-SQL.

Лично я все еще фанат LINQ-to-SQL и с радостью использую его для новых сборок, но я бы все скрыл. это за интерфейсом репозитория, так что я могу по желанию заменить его на любой инструмент:

  • raw ADO.
12
ответ дан 1 December 2019 в 01:11
поделиться

Я бы сказал, что если у вас возникли проблемы с правильным составлением кавычек в ваших операторах SQL с использованием ADO.NET, вы, вероятно, неправильно строите операторы SQL. Склонен к SQL-инъекция или, по крайней мере, беспорядочный код.

LINQ to SQL использует ADO.NET для этого. Это комбинация инструмента объектно-реляционного отображения (ORM) в сочетании с новым синтаксисом запроса. Я бы не стал тратить время на LINQ to SQL, поскольку Microsoft объявила его конец жизни.

Entity Framework - это замена LINQ to SQL. Это инструмент ORM, который имеет собственный SQL-язык запросов, Entity SQL. Вы можете использовать LINQ поверх него, так что большинство простых запросов точно такие же, как в LINQ to SQL.

Какой метод использовать, во многом зависит от того, что вы пытаетесь сделать. Я бы не стал использовать типизированные DataSets (или любые DataSets на самом деле). Думаю, это личное предпочтение, но если вы можете создавать типизированные наборы данных, вам лучше выполнять полномасштабное объектно-реляционное сопоставление.

Знание основ ADO.NET - полезный навык, как бы вы на него ни смотрели. Особенно, если вам нужно обновить несколько записей в базе данных без предварительного извлечения этих данных, вы всегда будете писать операторы SQL. Я бы рекомендовал создать хранимые процедуры для этих случаев, которые вы можете вызывать с помощью обычного ADO.NET, или вы можете добавить их в свою модель в Entity Framework и вызывать их через нее.

Entity Framework дает вам некоторую независимость от базы данных. (в отличие от LINQ to SQL). Существуют реализации для Oracle, но лично у меня нет опыта с ними. Насколько я слышал, они налагают некоторые нежелательные ограничения, если вы выполняете полусложную работу.

Особенно, если вам нужно обновить несколько записей в базе данных без предварительного извлечения этих данных, вы всегда будете писать операторы SQL. Я бы рекомендовал создать хранимые процедуры для этих случаев, которые вы можете вызывать с помощью обычного ADO.NET, или вы можете добавить их в свою модель в Entity Framework и вызывать их через нее.

Entity Framework дает вам некоторую независимость от базы данных. (в отличие от LINQ to SQL). Существуют реализации для Oracle, но лично у меня нет опыта с ними. Насколько я слышал, они налагают некоторые нежелательные ограничения, если вы выполняете полусложную работу.

Особенно, если вам нужно обновить несколько записей в базе данных без предварительного извлечения этих данных, вы всегда будете писать операторы SQL. Я бы рекомендовал создать хранимые процедуры для этих случаев, которые вы можете вызывать с помощью обычного ADO.NET, или вы можете добавить их в свою модель в Entity Framework и вызывать их через нее.

Entity Framework дает вам некоторую независимость от базы данных. (в отличие от LINQ to SQL). Существуют реализации для Oracle, но лично у меня нет опыта с ними. Насколько я слышал, они налагают некоторые нежелательные ограничения, если вы выполняете полусложную работу.

или вы можете добавить их в свою модель в Entity Framework и вызывать их там.

Entity Framework дает вам некоторую независимость от базы данных (в отличие от LINQ to SQL). Существуют реализации для Oracle, но лично у меня нет опыта с ними. Насколько я слышал, они налагают некоторые нежелательные ограничения, если вы выполняете полусложную работу.

или вы можете добавить их в свою модель в Entity Framework и вызывать их там.

Entity Framework дает вам некоторую независимость от базы данных (в отличие от LINQ to SQL). Существуют реализации для Oracle, но лично у меня нет опыта с ними. Насколько я слышал, они налагают некоторые нежелательные ограничения, если вы выполняете полусложную работу.

4
ответ дан 1 December 2019 в 01:11
поделиться
Другие вопросы по тегам:

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