Большая часть бизнес-приложений зависит от данных, хранящихся в реляционных базах данных. Базы данных состоят из таблиц, столбцов и связей. Такая структура позволяет удачно реализовать механизм хранения и отчетности. Однако технология базы данных часто не соответствует потребностям объектно-ориентированного разработчика под .NET. Разработчик объекта мыслит категориями объектов, свойств, методов, связей, инкапсуляции и т. п. Огромное количество времени затрачивается на преобразование данных из базы дан
ных в объектно-ориентированную структуру и обратно. Кроме того, разработчиков просят писать код на Structured Query Language (SQL) и .NET.
LINQ (см. главу 3) является технологией, которая помогает сгладить это противоречие. Она предоставляет средства для работы с записями базы данных как с объектами. Она также позволяет вам писать ваши запросы при помощи .NET (языков C# и VB). Над LINQ находится объектно-реляционный конструктор (O/R Designer) для SQL Server, который называется LINQ to SQL. С его помощью вы можете конструировать и создавать классы .NET, основанные на схемах баз данных. Таким образом, вы можете быстро преобразовать концепции баз данных в объектно-ориентированные концепции.
Для создания класса LINQ to SQL нужно использовать шаблон Visual Studio. Вы можете добавить такой класс в проект любого типа (Web, Windows, библиотеку классов и т. д.). На рис. 1.41 показано диалоговое окно Add New Item с выбранным в нем шаблоном LINQ to SQL Classes.
Затем для построения вашего класса LINQ вы можете использовать O/R Designer. Сначала вы используете Server Explorer для того, чтобы открыть подключение к базе данных (с ко- торой вы будете работать). Затем вы можете перетаскивать таблицы из базы данных на поверхность конструирования. Визуальный конструктор понимает (и обеспечивает) связи между таблицами. Он устанавливает соответствие таблиц классам и столбцов — свойствам.
На рис. 1.42 показан пример работы конструктора. Здесь имеются класс клиентов и линия связи с заказами клиентов. Обратите также внимание на методы, перечисленные справа на диаграмме. Они были созданы путем перетаскивания хранимых процедур из Server Explorer на поверхность конструктора. Теперь разработчик может работать с этими классами и методами так же, как и с другими объектами .NET.