Контроллеры Odata В .Net Mvc

В недавно выпущенных ASP.NET и Веб-инструменты 2012.2 Обновление объявлена частичная поддержка протокола oData в веб-API ASP.NET. Я решил попробовать сам и поделиться с коллегами.

В этой статье я опишу, как использовать запросы и операции CRUD через протокол oData с несколькими связанными объектами модели данных.

В качестве клиентского интерфейса использовался фреймворк Kendo UI.



Предисловие.

Статья написана с целью закрепить материал, изложенный при изучении новой техники.

В связи с полным отсутствием реального опыта создания приложения на платформе .

NET MVC, заранее извиняюсь за возможные недочеты.

Так…

Первоначальная установка.

Загрузить и установить Обновление ASP.NET и веб-инструментов 2012.2 (если не хотите, то можете просто установить пакет в созданный проект OData веб-API Microsoft ASP.NET ).

Создать новый проект Веб-приложение ASP.NET MVC 4 и давай позвоним "Одатасампле" .

В диалоге Новый проект ASP.NET MVC 4 выбрать шаблон Веб-API .

Мы доставим посылку немедленно KendoUIWeb и делаем необходимые настройки: в файл _Layout.cshtml необходимо включать ссылки на kendo.common.min.css, kendo.default.min.css, kendo.web.min.js.

Модель.

В соответствии с соглашениями создадим в папке Модели Сорт Категория и добавьте поля:
  
  
  
   

public class Category { public int ID { get; set; } [Required] [StringLength(50)] public string Name { get; set; } }

В этой же папке создаем файл класса контекста Одатасамплеконтекст :

public class ODataSampleContext : DbContext { public ODataSampleContext() : base("name=ODataSampleContext") { } public DbSet<Category> Categories { get; set; } }

И мы обязательно воспользуемся очень полезным функционалом Entity Framework Migration — делаем это в консоли диспетчера пакетов:
  • Включить-Миграции
  • Инициализация добавления-миграции
  • Обновление базы данных
В результате мы получаем таблицу в базе данных с необходимыми полями.

Миграцией, конечно, можно не пользоваться, но это очень удобно.

Я даже не представляю, как можно работать по-другому.

Но я отвлекаюсь.

Теперь перейдем к самому интересному.



Контроллер OData.
Мы еще не создали шаблон для OData-контроллера, поэтому выбираем шаблон «Пустой API-контроллер» и измените код на следующий:

public class CategoryController : EntitySetController<Category, int> { private ODataSampleContext db = new ODataSampleContext(); public override IQueryable<Category> Get() { return db.Categories; ; } protected override void Dispose(bool disposing) { db.Dispose(); base.Dispose(disposing); } }

Совсем, EntitySetController унаследовано от Одатаконтроллер , что, в свою очередь, из Апиконтроллер .

Оказывается, это всё надстройка к WebApi. Так что в целом любой протокол можно реализовать самостоятельно, тем более, что все исходные коды доступны на проекте ASP.NET CodePlex. EntitySetController принимает два основных типа: тип сущности и тип ключа сущности.

И последний штрих: нужно внести некоторые изменения в файл.

ВебАпиКонфиг :

public static class WebApiConfig { public static void Register(HttpConfiguration config) {

Теги: #.

Net MVC #odata #kendo ui #разработка веб-сайтов #.

NET #api

Вместе с данным постом часто просматривают: