Я хочу создать службу WCF oData (служба RESTful), используя U2 Toolkit для .NET и базу данных U2. Затем я хочу использовать службу oData в любом клиентском приложении .NET.
Как создать/использовать службу WCF oData (служба RESTful) с помощью инструментария U2 для .NET?
Ответы (1)
Пожалуйста, смотрите мой ответ ниже:
Обзор
WCF Data Services предоставляет данные сущностей как службу данных. Эти данные объекта можно создать из базы данных U2 с помощью U2 Toolkit для .NET. В этом разделе показано, как создать модель данных на основе Entity Framework в веб-приложении Visual Studio, основанном на существующей базе данных, и использовать эту модель данных для создания новой службы WCF oData (службы RESTful). Вы можете использовать службу WCF oData в другом приложении .NET, например:
- WPF-приложение
- Приложение в стиле метро для Windows 8
- Офис EXCEL
Установка
Вам необходимо установить набор инструментов U2 для .NET v 1.2.0. Он содержит надстройки U2 ADO.NET Provider и U2 Database Add-ins для Visual Studio.
Создать модель данных объекта с существующей учетной записью U2
Мы будем использовать образец базы данных U2 UniVerse под названием «HS.SALES». 1. Создайте веб-приложение ASP.NET с именем «U2_WCF_oData_WebApplication».
- В меню Проект щелкните Добавить новый элемент.
- На панели «Шаблоны» щелкните категорию «Данные», а затем выберите «Модель данных объекта ADO.NET».
Введите название модели и нажмите «Добавить».
В диалоговом окне «Выбор содержимого модели» выберите «Создать из базы данных». Затем нажмите Далее.
- Нажмите кнопку Новое подключение.
- В диалоговом окне Свойства подключения введите параметры строки подключения и нажмите кнопку ОК.
- Убедитесь, что установлен флажок Сохранить параметры подключения объекта в App.Config as:. Затем нажмите Далее.
- Измените «Объекты» на «CustomerEntities»
- В диалоговом окне Choose Your Database Objects выберите CUSTOMER и CUSTOMER_ORDERS, которые вы планируете предоставлять в службе данных. Измените «HS.SALESModel» на «CustomerModel».
- Нажмите Готово, чтобы завершить работу мастера.
Создайте службу WCF oData (служба RESTful), используя новую модель данных (модель клиента)
- В Visual Studio откройте файл Customer.edmx, представляющий модель данных.
- В обозревателе моделей щелкните модель правой кнопкой мыши, выберите «Свойства» и запишите имя контейнера сущностей.
- В обозревателе решений щелкните правой кнопкой мыши имя своего проекта ASP.NET и выберите команду Добавить новый элемент.
- В диалоговом окне Добавить новый элемент выберите Служба данных WCF.
- Укажите имя службы и нажмите кнопку ОК.
- В коде службы данных замените комментарий /* TODO: укажите здесь имя класса источника данных */ в определении класса, определяющего службу данных, на тип, который наследуется от класса ObjectContext и является контейнером сущностей. модели данных, которая была отмечена на шаге 2.
открытый класс U2_Customer_WcfDataService : DataService‹ /* TODO: укажите здесь имя класса источника данных */ >
public class U2_Customer_WcfDataService : DataService< CustomerEntities >
В коде службы данных разрешите авторизованным клиентам доступ к наборам сущностей, предоставляемым службой данных. Дополнительные сведения см. в разделе Создание службы данных.
// config.SetEntitySetAccessRule("MyEntityset", EntitySetRights.AllRead);
config.SetEntitySetAccessRule("*", EntitySetRights.AllRead);
Чтобы протестировать службу данных U2_Customer_WcfDataService.svc с помощью веб-браузера, нажмите Visual Studio ->Debug->StartWithoutDebugging.
Использовать службу WCF oData (служба RESTful)
- Создайте проект WPF в том же решении. Переименуйте проект в «U2_Consumer_WpfApplication».
2. Добавьте ссылку на сервис
- Нажмите кнопку «Обнаружение», переименуйте «U2_WCF_oData_ServiceReference». Нажмите ОК.
- Перейдите в Данные->Показать источники данных.
- Перетащите «КЛИЕНТЫ» в WPF Designer.
Откройте файл «MainWindow.xaml.cs». Добавьте эту строку (ваш uri будет другим).
частный Uri svcUri = новый Uri("http://localhost:38346/U2_Customer_WcfDataService.svc/" );
Добавьте эту строку.
U2_WCF_oData_ServiceReference.CustomerEntities ctx = новый U2_WCF_oData_ServiceReference.CustomerEntities(svcUri);
Добавьте эту строку.
CUSTOMERsViewSource.Source = ctx.CUSTOMERs.ToList();
Ваш готовый код будет выглядеть так, как показано ниже. общедоступный частичный класс MainWindow: Window { private Uri svcUri = new Uri("http://localhost:38346/U2_Customer_WcfDataService.svc/");
public MainWindow() { InitializeComponent(); } private void Window_Loaded(object sender, RoutedEventArgs e) { U2_WCF_oData_ServiceReference.CustomerEntities ctx = new U2_WCF_oData_ServiceReference.CustomerEntities(svcUri); System.Windows.Data.CollectionViewSource cUSTOMERsViewSource = ((System.Windows.Data.CollectionViewSource)(this.FindResource("cUSTOMERsViewSource"))); // Load data by setting the CollectionViewSource.Source property: // cUSTOMERsViewSource.Source = [generic data source] cUSTOMERsViewSource.Source = ctx.CUSTOMERs.ToList(); }
}
Установите приложение WPF как «Запуск проекта». Запустите приложение WPF.