Поделиться через


Создание службы данных (краткое руководство по службам WCF Data Services)

В этой задаче на основе образца базы данных Northwind будет создан образец службы данных, предоставляющей канал Протокол Open Data Protocol (OData) . Задача включает следующие основные шаги.

  1. Создание веб-приложения ASP.NET.

  2. Определение модели данных с использованием средств для работы с моделью EDM.

  3. Добавление службы данных в веб-приложение.

  4. Разрешение доступа к службе данных.

Dd728275.note(ru-ru,VS.100).gifПримечание
Веб-приложение ASP.NET, которое будет создано по завершении этого задания, работает под управлением ASP.NET Development Server, предоставленного Visual Studio.Для упрощения тестирования и устранения неисправностей службы данных во время разработки рассмотрите возможность работы приложения, размещающего службу данных, под управлением служб Internet Information Services (IIS).Дополнительные сведения см. в разделе Как разработать службу данных WCF Data Service, работающую на IIS.

Создание веб-приложения ASP.NET

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

  2. В диалоговом окне Создать проект выберите Visual Basic или Visual C# в качестве языка программирования.

  3. В области Шаблоны выберите пункт Веб-приложение ASP.NET. Примечание. Если используется среда Visual Studio Web Developer, то вместо нового веб-приложения нужно будет создать новый веб-узел.

  4. Введите NorthwindService в качестве названия проекта.

  5. Нажмите кнопку ОК.

  6. (Необязательно) Укажите конкретный номер порта для веб-приложения. Примечание. В оставшейся части этого краткого руководства используется номер порта 12345.

    1. В обозревателе решений щелкните правой кнопкой мыши имя только что созданного проекта ASP.NET и выберите команду Свойства.

    2. Выберите вкладку Веб и задайте в поле Определенный порт значение 12345.

Определение модели данных

  1. В обозревателе решений щелкните правой кнопкой мыши имя проекта ASP.NET и выберите команду Добавить новый элемент.

  2. В диалоговом окне Добавление нового элемента выберите Модель сущность-данные ADO.NET.

  3. В качестве имени модели данных введите Northwind.edmx.

  4. В мастере создания модели сущность-данные выберите Создать из базы данных и нажмите кнопку Далее.

  5. Подключите модель данных к базе данных, выполнив одно из следующих действий, и затем нажмите кнопку Далее.

    • При отсутствии уже настроенного подключения базы данных выберите пункт Создать подключение и создайте новое подключение. Дополнительные сведения см. в разделе Как создать подключения к базам данных SQL Server. Этот экземпляр SQL Server должен содержать присоединенный образец базы данных Northwind.

      — или —

    • Если имеется уже настроенное подключение к базе данных Northwind, выберите это подключение из списка.

  6. На завершающей странице мастера установите флажки для всех таблиц базы данных и снимите флажки для представлений и хранимых процедур.

  7. Чтобы закрыть мастер, нажмите кнопку Готово.

    Dd728275.note(ru-ru,VS.100).gifПримечание
    Эта сформированная модель данных предоставляет свойства внешнего ключа для типов сущности.Модели данных, созданные с помощью Visual Studio 2008, не включают эти свойства внешнего ключа.В связи с этим перед получением доступа к этой версии службы данных Northwind необходимо обновить клиентские классы службы данных любого клиентского приложения для доступа к службе данных, созданного с помощью среды Visual Studio 2008.

Создание службы данных

  1. В обозревателе решений щелкните правой кнопкой мыши имя проекта ASP.NET и выберите команду Добавить новый элемент.

  2. В диалоговом окне Добавление нового элемента выберите Служба данных ADO.NET.

  3. В качестве имени службы укажите Northwind.

    В Visual Studio для новой службы создаются файлы разметки и кодов XML. По умолчанию открывается окно редактора кода. В обозревателе решений для службы будет отображаться имя Northwind с расширением .svc.cs или .svc.vb.

  4. В коде службы данных замените комментарий /* TODO: put your data source class name here */ в определении класса, задающего службу данных, типом контейнера сущностей модели данных, который в данном случае равен NorthwindEntities. Определение класса должно выглядеть следующим образом.

    Public Class Northwind
        Inherits DataService(Of NorthwindEntities)
    
    public class Northwind : DataService<NorthwindEntities>
    

Включение доступа к ресурсам службы данных

  1. В коде службы данных замените местозаполнитель в функции InitializeService следующим текстом.

    ' Grant only the rights needed to support the client application.
    config.SetEntitySetAccessRule("Orders", EntitySetRights.AllRead _
         Or EntitySetRights.WriteMerge _
         Or EntitySetRights.WriteReplace)
    config.SetEntitySetAccessRule("Order_Details", EntitySetRights.AllRead _
        Or EntitySetRights.AllWrite)
    config.SetEntitySetAccessRule("Customers", EntitySetRights.AllRead)
    
     // Grant only the rights needed to support the client application.
    config.SetEntitySetAccessRule("Orders", EntitySetRights.AllRead 
         | EntitySetRights.WriteMerge 
         | EntitySetRights.WriteReplace );
     config.SetEntitySetAccessRule("Order_Details", EntitySetRights.AllRead
         | EntitySetRights.AllWrite);
     config.SetEntitySetAccessRule("Customers", EntitySetRights.AllRead);
    

    Это обеспечивает авторизованным клиентам доступ для чтения и записи к ресурсам указанных наборов сущностей.

    Dd728275.note(ru-ru,VS.100).gifПримечание
    Любой клиент, имеющий доступ к приложению ASP.NET, имеет также доступ к ресурсам, предоставляемым службой данных.Для предотвращения несанкционированного доступа к ресурсам производственной службы данных необходимо также установить защиту самого приложения.Дополнительные сведения см. в разделе Securing ASP.NET Web Sites.

Следующие шаги

Итак, мы успешно создали новую службу данных на основе образца базы данных Northwind, которая предоставляет канал OData , и включили доступ к каналу для клиентов, имеющих разрешения на выполнение веб-приложения ASP.NET. Теперь запустим эту службу данных из среды Visual Studio и обратимся к каналу OData с помощью запросов HTTP GET через веб-обозреватель.

Доступ к службе из веб-обозревателя

См. также

Другие ресурсы

ADO.NET Entity Data Model Tools