ADO.NET

Поделись знанием:
Перейти к: навигация, поиск

ADO.NET (ActiveX Data Object для .NET) — технология, предоставляющая доступ к данным для приложений, основанных на Microsoft .NET. Является не развитием более ранней технологии ADO, а самостоятельной технологией, частью фреймворка .NET. В отличие от классической ADO, которая была в основном предназначена для тесно связанных клиент-серверных систем, ADO.NET больше нацелена на автономную работу с помощью объектов DataSet. Эти типы представляют локальные копии любого количества взаимосвязанных таблиц данных, каждая из которых содержит набор строк и столбцов. Объекты DataSet позволяют вызывающей сборке (наподобие веб-страницы или программы, выполняющейся на настольном компьютере) работать с содержимым DataSet, изменять его, не требуя подключения к источнику данных, и отправлять обратно блоки измененных данных для обработки с помощью соответствующего адаптера данных. Но, пожалуй, самое фундаментальное различие между классической ADO и ADO.NET состоит в том, что ADO.NET является управляемой кодовой библиотекой, и, значит, подчиняется тем же правилам, что и любая управляемая библиотека. Типы, составляющие ADO.NET, используют протокол управления памятью CLR, принадлежат к той же системе типов (классы, интерфейсы, перечисления, структуры и делегаты), и доступ к ним возможен с помощью любого языка .NET. Классы ADO.NET находятся в сборке System.Data.dll.





Поставщики данных

От других API ADO.NET отличает то, что она не взаимодействует с системами управления базами данных напрямую. Вместо этого используются поставщики данных (data provider), которые инкапсулируют механизм работы с конкретной СУБД. Такой подход очень гибок, позволяет создавать адаптеры для любой СУБД и полностью использовать её особенности.

Подключаемый уровень

На данном уровне работа c базами данных ведётся через объекты подключения, объекты чтения данных и поставщика данных предназначенного для нужной СУБД. Для получения данных выполняются следующие шаги.

  • Создание, настройка и открытие объекта подключения.
  • Создание и настройка объекта команды, указывающего объект подключения в аргументе конструктора или через свойство Connection.
  • Вызов метода ExecuteReader () настроенного объекта команды.
  • Обработка каждой записи с помощью метода Read () объекта чтения данных.

Объекты чтения данных предоставляют поток данных, для чтения в прямом направлении. Чтение происходит каждый раз по одной записи. Следовательно объекты чтения обрабатывают только select запросы. Открытие и закрытие подключения к БД полностью возлагается на программиста.

Автономный уровень

Автономный уровень ADO.NET позволяет отображать реляционные данные с помощью модели объектов в память. Типы данных из System.Data воспроизводят не только отображение строк и столбцов, а также отношения между таблицами, первичные ключи и т. д. Так как отображение данных происходит в память, подключение не занимает времени СУБД, подключаясь и отключаясь автоматически, при чтении и обновлении данных, автономный уровень снимает с программиста лишнюю работу. Но у данного уровня есть недостаток, представьте что требуется считать из БД 20000 записей, и при использовании автономного уровня, все это ляжет в память приложения, не очень разумное использование, здесь на выручку приходит подключаемый уровень который считает все последовательно.

Entity Framework

Предыдущие уровни ADO.NET все ещё привязаны к физической структуре данных. При взаимодействии с данными необходимо помнить схемы таблиц, отношений. Общение с БД осуществляет на языке SQL, что приводит к большому объёму кода, так как язык C# сильно отличается от SQL. Entity Framework выводит абстракцию на новый уровень - объектной модели. Теперь отображение происходит на бизнес-объекты приложения, что позволяет работать с данными как с обычными объектами языка. Сущности (еntities) — это концептуальная модель физической базы данных, которая отображается на предметную область. Формально говоря, эта модель называется моделью сущностных данных (Entity Data Model — EDM). Модель EDM представляет собой набор классов клиентской стороны, которые отображаются на физическую базу данных. Тем не менее, нужно понимать, что сущности вовсе не обязаны напрямую отображаться на схему базы данных, как может показаться, исходя из названия. Сущностные классы можно реструктурировать для соответствия существующим потребностям, и исполняющая среда EF отобразит эти уникальные имена на корректную схему базы данных.

Напишите отзыв о статье "ADO.NET"

Литература

  • Сахил Малик. Microsoft ADO.NET 2.0 для профессионалов = Pro ADO.NET 2.0. — М.: «Вильямс», 2006. — С. 560. — ISBN 1-59059-512-2.
  • Эндрю Троелсен. Язык Программирования С#2010 и платформа .NET 4.0 = PRO C# 2010 AND THE .NET 4 PLATFORM. — 5-е издание. — Москва • Санкт-Петербург • Киев: «Вильямс», 2011. — С. 1392. — ISBN 978-5-8459-1682-2.

Ссылки

  • Раздел [msdn.microsoft.com/ru-ru/library/e80y5yhx.aspx ADO.NET] в библиотеке MSDN.


Отрывок, характеризующий ADO.NET

– Да, жалкий мальчишка, – сказал Денисов, видимо, не найдя ничего стыдного в этом напоминании. – Позвать его сюда. Vincent Bosse его зовут. Позвать.
– Я позову, – сказал Петя.
– Позови, позови. Жалкий мальчишка, – повторил Денисов.
Петя стоял у двери, когда Денисов сказал это. Петя пролез между офицерами и близко подошел к Денисову.
– Позвольте вас поцеловать, голубчик, – сказал он. – Ах, как отлично! как хорошо! – И, поцеловав Денисова, он побежал на двор.
– Bosse! Vincent! – прокричал Петя, остановясь у двери.
– Вам кого, сударь, надо? – сказал голос из темноты. Петя отвечал, что того мальчика француза, которого взяли нынче.
– А! Весеннего? – сказал казак.
Имя его Vincent уже переделали: казаки – в Весеннего, а мужики и солдаты – в Висеню. В обеих переделках это напоминание о весне сходилось с представлением о молоденьком мальчике.
– Он там у костра грелся. Эй, Висеня! Висеня! Весенний! – послышались в темноте передающиеся голоса и смех.
– А мальчонок шустрый, – сказал гусар, стоявший подле Пети. – Мы его покормили давеча. Страсть голодный был!
В темноте послышались шаги и, шлепая босыми ногами по грязи, барабанщик подошел к двери.
– Ah, c'est vous! – сказал Петя. – Voulez vous manger? N'ayez pas peur, on ne vous fera pas de mal, – прибавил он, робко и ласково дотрогиваясь до его руки. – Entrez, entrez. [Ах, это вы! Хотите есть? Не бойтесь, вам ничего не сделают. Войдите, войдите.]
– Merci, monsieur, [Благодарю, господин.] – отвечал барабанщик дрожащим, почти детским голосом и стал обтирать о порог свои грязные ноги. Пете многое хотелось сказать барабанщику, но он не смел. Он, переминаясь, стоял подле него в сенях. Потом в темноте взял его за руку и пожал ее.
– Entrez, entrez, – повторил он только нежным шепотом.
«Ах, что бы мне ему сделать!» – проговорил сам с собою Петя и, отворив дверь, пропустил мимо себя мальчика.
Когда барабанщик вошел в избушку, Петя сел подальше от него, считая для себя унизительным обращать на него внимание. Он только ощупывал в кармане деньги и был в сомненье, не стыдно ли будет дать их барабанщику.


От барабанщика, которому по приказанию Денисова дали водки, баранины и которого Денисов велел одеть в русский кафтан, с тем, чтобы, не отсылая с пленными, оставить его при партии, внимание Пети было отвлечено приездом Долохова. Петя в армии слышал много рассказов про необычайные храбрость и жестокость Долохова с французами, и потому с тех пор, как Долохов вошел в избу, Петя, не спуская глаз, смотрел на него и все больше подбадривался, подергивая поднятой головой, с тем чтобы не быть недостойным даже и такого общества, как Долохов.
Наружность Долохова странно поразила Петю своей простотой.
Денисов одевался в чекмень, носил бороду и на груди образ Николая чудотворца и в манере говорить, во всех приемах выказывал особенность своего положения. Долохов же, напротив, прежде, в Москве, носивший персидский костюм, теперь имел вид самого чопорного гвардейского офицера. Лицо его было чисто выбрито, одет он был в гвардейский ваточный сюртук с Георгием в петлице и в прямо надетой простой фуражке. Он снял в углу мокрую бурку и, подойдя к Денисову, не здороваясь ни с кем, тотчас же стал расспрашивать о деле. Денисов рассказывал ему про замыслы, которые имели на их транспорт большие отряды, и про присылку Пети, и про то, как он отвечал обоим генералам. Потом Денисов рассказал все, что он знал про положение французского отряда.
– Это так, но надо знать, какие и сколько войск, – сказал Долохов, – надо будет съездить. Не зная верно, сколько их, пускаться в дело нельзя. Я люблю аккуратно дело делать. Вот, не хочет ли кто из господ съездить со мной в их лагерь. У меня мундиры с собою.
– Я, я… я поеду с вами! – вскрикнул Петя.
– Совсем и тебе не нужно ездить, – сказал Денисов, обращаясь к Долохову, – а уж его я ни за что не пущу.
– Вот прекрасно! – вскрикнул Петя, – отчего же мне не ехать?..
– Да оттого, что незачем.
– Ну, уж вы меня извините, потому что… потому что… я поеду, вот и все. Вы возьмете меня? – обратился он к Долохову.
– Отчего ж… – рассеянно отвечал Долохов, вглядываясь в лицо французского барабанщика.
– Давно у тебя молодчик этот? – спросил он у Денисова.
– Нынче взяли, да ничего не знает. Я оставил его пг'и себе.
– Ну, а остальных ты куда деваешь? – сказал Долохов.
– Как куда? Отсылаю под г'асписки! – вдруг покраснев, вскрикнул Денисов. – И смело скажу, что на моей совести нет ни одного человека. Разве тебе тг'удно отослать тг'идцать ли, тг'иста ли человек под конвоем в гог'од, чем маг'ать, я пг'ямо скажу, честь солдата.
– Вот молоденькому графчику в шестнадцать лет говорить эти любезности прилично, – с холодной усмешкой сказал Долохов, – а тебе то уж это оставить пора.