SqlConnection
является частью базовой, необработанной библиотеки классов ADO.NET - действительно, частью этой библиотеки для SQL Server.Это основа всего доступа к данным в .NET.
С необработанным ADO.NET вы довольно «скромны» и близки к цели - вам нужно создавать свои SQL-запросы и выполнять их,вы получаете строки и столбцы, очень похоже на то, что даст вам реляционная база данных.
Плюсы: действительно близко к SQL, действительно мощная, лучшая производительность
Минусы: сложнее писать, больше «склеивает» кодменьшая безопасность типов, более тесная связь с базовой структурой базы данных
DataContext
(Linq-to-SQL) или ObjectContext
(Entity Framework) являются абстракциями более высокого уровня - они располагаются поверх ADO.NET, но они (Linq-to-SQL или Entity Framework) предлагают так называемые возможности ORM - здесь вы на самом деле не имеете дело с необработанными операторами SQL и строками / столбцами, вместо этого эти генераторы кода создадут для вас уровень абстракции.который построен из .NET объектов.Каждая таблица в базе данных будет преобразована в соответствующий класс .NET со свойствами для всех столбцов в этой таблице.
Кроме того, в L2S и EF вы обычно используете LINQ
для запроса - вашзапросы гораздо больше похожи на C #, и L2s / EF будет обрабатывать перевод этих запросов, которые вы выражаете в C #, в реальные операторы SQL, которые SQL Server будет выполнять.
Плюсы: с ними гораздо проще работать, гораздо приятнее (объекты со свойствами по сравнению с необработанными строками / столбцами), безопасность типов, возможность запроса с помощью LINQ, более высокая производительность разработчика
Минусы: другой уровень означает больше переводов, снижение производительности, не очень подходящее для определенных вещей (например, массовых операций)