Экспорт (0) Печать
Развернуть все

Практическое руководство. подключиться к базе данных SQL Azure через службы WCF Data Services

Обновлено: Апрель 2014 г.

Службы WCF Data Services (ранее известная как службы ADO.NET Data Services) позволяет создавать службы данных, реализующие протокол Open Data Protocol (OData), который основан на семантике REST. Поскольку протокол OData основан на стандартных протоколах Интернета, службы данных доступны любым клиентским приложениям, способным принимать и отправлять HTTP-сообщения и выполнять разбор XML. Кроме того, доступны многочисленные клиентские библиотеки, упрощающие работу с каналами данных OData в различных прикладных платформах. Дополнительные сведения о клиентских библиотеках с поддержкой OData см. в разделе OData SDK.

Службы WCF Data Services требуется реализация поставщика служб данных для определения модели данных и обеспечения доступа к базовому источнику данных. С помощью поставщика Entity Framework вы можете создавать службы данных для базы данных База данных SQL Azure. Дополнительные сведения об использовании Службы WCF Data Services см. в документации по службам данных WCF.

noteПримечание
При использовании подключения к База данных SQL Azure установите время ожидания соединения равным 30 секундам.

В этом разделе показано создание простой службы данных на основе базы База данных SQL Azure и приложения Azure для доступа к этой службе данных. В разделе используется образец базы данных School, развернутый на сервере База данных SQL Azure в разделе How To: Migrate a Database by Using Scripts.

Чтобы выполнить этот пример, необходимо установить пакет Azure SDK и Средства Azure для Microsoft Visual Studio. Дополнительные сведения о платформе Azure см. в разделе Azure SDK. Также необходимо инициализировать службу хранилища развертывания, установленную вместе со средствами Azure, с помощью служебной программы DSInit. Хранилище развертывания нужно инициализировать только один раз. Дополнительные сведения см. в разделе О хранилище развертывания.

  1. В Visual Studio в меню Файл последовательно выберите пункты Создать и Проект.

    WarningПредупреждение
    Для использования фабрики развертывания Azure среду Visual Studio необходимо запускать от имени администратора.

  2. На панели Типы проектов выберите Веб. На панели Шаблоны выберите Веб-приложение ASP.NET. Введите SchoolApplication в поле Имя и нажмите кнопку ОК.

  3. В обозревателе решений щелкните правой кнопкой мыши SchoolApplication, последовательно выберите пункты Добавить и Новый элемент.

  4. Выберите Модель EDM ADO.NET, введите SchoolDataModel.edmx в поле Имя и нажмите кнопку Добавить.

  5. В мастере моделей EDM выберите Создатьиз базы данных и нажмите кнопку Далее.

  6. Нажмите кнопку Создать соединение, введите данные для базы данных School на сервере База данных SQL Azure и нажмите кнопку ОК. Выберите параметр Не включать конфиденциальные данные в строку подключения. Параметр будет задан в коде приложения. Затем нажмите кнопку Далее.

  7. Выберите Таблицы и нажмите кнопку Готово. Будет создан EDMX-файл, определяющий тип сущности для каждой таблицы в базе данных.

    CautionВнимание!
    Для использования этого примера в среде Visual Studio 2010 или более поздней версии снимите флажок Переводить имена создаваемых объектов во множественное или единственное число. При выполнении этого примера в Visual Studio 2008 компонент Entity Framework не может создать EDMX-файл и связанные с ним клиентские классы на основе базы данных База данных SQL Azure. Для создания модели и файлов сопоставления необходимо подключиться к локальному экземпляру сервера SQL Server. Однако компонент Entity Framework сможет подключиться к База данных SQL Microsoft Azure, если модель и файлы сопоставления уже созданы.

  1. В обозревателерешений щелкните правой кнопкой мыши пункт SchoolApplication, выберите пункт Добавить, затем пункт НовыйЭлемент.

  2. Выберите Служба данных WCF, введите SchoolDataService.svc в поле Имя и нажмите кнопку Добавить.

  3. Замените в файле SchoolDataService.svc.cs или SchoolDataService.svc.vb комментарий /* TODO: put your data source class name here */ в определении класса, задающего службу данных, типом контейнера сущностей модели данных, который в данном случае равен SchoolEntities. Определение класса должно выглядеть следующим образом.

  4. Замените заполнитель в функции InitializeService следующим кодом, который предоставляет доступ к сущностям Course, Department и Person:

  1. В обозревателе решений щелкните правой кнопкой мыши решение, выберите Добавить, затем Новый проект.

  2. В диалоговом окне Добавление нового проекта выберите на панели Типы проектов пункт Облачная служба. Введите SchoolSite в поле Имя и нажмите кнопку ОК.

  3. В диалоговом окне Создание проекта облачной службы добавьте веб-роль ASP.NET на панели Решение облачной службы и нажмите кнопку ОК.

  4. Замените исходный код в файле Default.aspx на приведенный ниже.

    <html xmlns="http://www.w3.org/1999/xhtml" >
    <head runat="server">
        <title></title>
    </head>
    <body>
        <form id="form1">
        <div>
        
            <asp:DropDownList ID="peopleList" runat="server" 
                onselectedindexchanged="peopleList_SelectedIndexChanged"
        AutoPostBack="True">
            </asp:DropDownList>
            <br />
            <br />
            <asp:Label ID="infoLabel" runat="server"></asp:Label>
            <br />
            
        
        </div>
        </form>
    </body>
    </html>
    

    При этом создается раскрывающийся список с именем peopleList и элемент управления Label с именем infoLabel.

  5. Нажмите клавишу F6, чтобы построить приложение.

  6. В обозревателе решений щелкните правой кнопкой мыши проект веб-роли и выберите Добавить ссылку на службу.

  7. В диалоговом окне Добавление ссылки на службу выберите Найти. На панели Службы появляется служба SchoolDataService.svc. Введите SchoolServiceReference в поле Имя и нажмите кнопку ОК. При этом добавляется файл, содержащий классы данных для доступа к ресурсам службы данных.

  1. В файле Default.aspx.cs или Default.aspx.vb добавьте следующие инструкции using (Imports в Visual Basic):

  2. В разделяемом классе добавьте следующие декларации для DataServiceContext и URI в службу данных (это URI, ранее отображавшийся в поле Адрес диалогового окна Добавление ссылки на службу):

  3. В методе Page_Load инициализируйте контекст службы данных и заполните раскрывающийся список сведениями из службы данных путем добавления следующего кода:

  4. В режиме конструктора для файла Default.aspx дважды щелкните раскрывающийся список для добавления события peopleList_SelectedIndexChanged.

  5. В событии peopleList_SelectedIndexChanged заполните элемент управления Label в зависимости от выбранного лица, добавив следующий код:

  1. Для миграции базы данных School в База данных SQL Azure воспользуйтесь инструкциями в разделе How To: Migrate a Database by Using Scripts.

  2. В проекте SchoolApplication откройте файл Web.config. Измените строку подключения для подключения к базе данных База данных SQL Azure.

  3. В обозревателе решений щелкните правой кнопкой мыши проект WebRole1 и выберите команду Назначить запускаемым проектом.

  4. Нажмите клавишу F5, чтобы запустить приложение.

См. также

Показ:
© 2014 Microsoft