В недавно выпущенных 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
-
Башня Тесла: Электрический Расчет
19 Oct, 24 -
О Вечном Копировании Яндексом Гугла
19 Oct, 24 -
Подкаст «Я Сказал На Каннада» (№ 11)
19 Oct, 24