Silverlight 3: Отображение данных SQL Server - Создание подключения AdventureWorks

ОГЛАВЛЕНИЕ

Создание подключения AdventureWorks

Если уже установлен SQL Server и прикреплена база данных AdventureWorks, то пора создать подключение.

В Visual Studio щелкните по меню ”Инструменты | Подключиться к базе данных”… Откроется окно “Добавить подключение для создания конфигурации”. Убедитесь, что источник данных установлен в Microsoft SQL Server (SqlClient). Установите имя сервера в “localhost” - если база данных прикреплена к SQL Server, или “localhost\SQLExpress” – если база данных прикреплена к SQL Express (если имя экземпляра изменено на нечто отличное от стандартного, то обязательно укажите это вместо “SQLExpress”). Наконец, выберите базу данных “AdventureWorks”. Нажмите кнопку OK, когда закончите.

Так выглядит окно добавления подключения:

После создания подключения будет создан класс LINQ для SQL и сконфигурирован на использование базы данных AdventureWorks.

Добавление классов LINQ для SQL

Так как было создано подключение к базе данных AdventureWorks SQL Server в проводнике сервера, будет добавлен класс LINQ для SQL, хранящий информацию о подключении и извлекающий данные из таблицы Person.Contact.

Чтобы выполнить этот шаг, щелкните правой кнопкой мыши по проекту AdventureWorks_WebServer, затем выберите “Добавить | Новый элемент”… Когда откроется окно “Добавить новый элемент”, щелкните по узлу “Данные”, далее выберите “Шаблон классов LINQ для SQL” справа. Оставьте имя как “DataClasses1.dmbl”, далее нажмите кнопку “Добавить”.

Пример показан ниже:

После нажатия кнопки “Добавить” файл “DataClasses1.dbml” будет добавлен в проект AdventureWorks_WebServer и будет виден в проводнике решения. Если он не открылся автоматически, дважды щелкните по нему, чтобы открыть проектировщик.

Далее убедитесь, что проводник сервера открыт (Меню Вид | Проводник сервера). Разверните узел базы данных AdventureWorks и разверните узел “Таблицы”. Найдите таблицу “Контакт (человек)”, щелкните левой кнопкой мыши по ней, затем перетащите ее из проводника сервера в проектировщик DataClasses1.dbml следующим образом:

После успешного добавления таблицы контактов в DataClasses1.dbml сохраните проект (Меню Файл | Сохранить все). Теперь закройте проектировщик DataClasses1.dbml, потому что с ним закончено.

Добавление класса ContactRecord

Просмотр таблицы контактов выше говорит, что в ней есть много информации, много столбцов вроде: ContactID, NameStyle, Title и т. д. Поскольку нужны только столбцы FirstName, LastName и EmailAddress, будет создан пользовательский класс ContactRecord, представляющий каждую строку контакта из таблицы, вместо использования предоставляемого типа Contact.
В качестве замечания, почему бы не использовать ADO.NET? С DataSets и DataTables гораздо легче работать! Хотя это верно, WCF был спроектирован в соответствии с принципами SOA(сервис-ориентированная архитектура), а значит, надо программировать на контрактах, а не реализации. Поскольку DataSets и DataTables являются специфичными для .NET типами, их нельзя использовать. Несмотря на то, что их можно использовать внутри службы WCF, их нельзя передать Silverlight.

Чтобы создать класс ContactRecord, щелкните правой кнопкой мыши по узлу проекта AdventureWorks_WebServer в проводнике решения, выберите “Добавить | Класс…“ Назовите его “ContactRecord.vb”, потом нажмите кнопку “Добавить“.

После добавления класса добавьте в него три открытых члена: FirstName, LastName и Email. Теперь класс должен выглядеть так:

Public Class ContactRecord
    Public FirstName As String
    Public LastName As String
    Public Email As String
End Class

Сохраните проект (Меню Файл | Сохранить все). Далее будет рассмотрено добавление службы WCF.