4

Я хочу предложить своим пользователям богатую функциональность запросов, чтобы они могли динамически добавлять предложения Where, изменять порядок сортировки и группировки. oData кажется лучшей технологией для работы, но я не знаю, как правильно ее реализовать в приложении MVC.Публикация OData в приложении MVC

1) Как подключить многофункциональный клиент, который поддерживает oData с архитектурой MVC?

2) Должен ли я выставлять IQueryable в моем хранилище?

3) Может ли кто-нибудь объяснить, как создавать, обновлять или удалять при использовании 2 связанных таблиц в MVC? (? В слое службы)

ответ

1

Хорошее место, чтобы начать изучение OData здесь: http://msdn.microsoft.com/en-us/data/odata.aspx

В General OData и Web Services следует использовать, если они необходимы, потому что 1) Вы физические уровни должны быть разделенных по соображениям безопасности или производительности или 2) Многим приложениям или потребителям необходимо использовать один и тот же API. Конечно, есть и другие причины, но обычно, если вам нужно спросить, имеет ли OData смысл, у вас нет этих требований. ;)

1

Я собираюсь объяснить это простым способом, и я надеюсь, что это будет полезно для вас.

1) Создать пустое консольное приложение.

2) Составьте ссылку на сервис любой публичной службы OData. То есть http://services.odata.org/northwind/northwind.svc/

enter image description here

После этого Visual Studio собирается добавить еще несколько ссылок сборки, как вы можете увидеть ниже

enter image description here

3) Напишите следующий код

с использованием системы ; используя System.Collections.Generic; используя System.Data.Services.Client; используя System.Linq; используя System.Text; с использованием System.Threading.Tasks;

namespace ConsoleApplication4 
{ 
    class Program 
    { 
     static DataServiceContext ctx = new DataServiceContext(new Uri("http://services.odata.org/northwind/northwind.svc/")); 

     static void Main(string[] args) 
     { 
      IEnumerable<ServiceReference1.Category> response = 
       ctx.Execute<ServiceReference1.Category>(new Uri("http://services.odata.org/northwind/northwind.svc/Categories")); 

     } 
    } 
} 

4) Установка точки останова в конце основного метода. А теперь отладочное приложение. Вы увидите список категорий.

enter image description here

5) Если OData разоблачили с разрешением реализовать все CRUD, то вы можете сделать это. И, конечно же, вы можете вернуть response в ASP.NET MVC, но сначала вы должны преобразовать его в свой класс Model.

Возможно, вы сохраните статический DataServiceContext ctx = new DataServiceContext(new Uri("http://services.odata.org/northwind/northwind.svc/")); в своем классе BaseController.

А также вы получите значение свойства, как это:

enter image description here

P.S. Взгляните на это видео http://www.youtube.com/watch?v=e07TzkQyops.

1

Я писал API Restfull в MVC и нашел ODATA. Отличная реализация MS.

http://www.asp.net/web-api/overview/odata-support-in-aspnet-web-api

, где вы можете получить отличный старт на OData.

я смотрел на эту страницу

http://www.asp.net/web-api/overview/odata-support-in-aspnet-web-api/getting-started-with-odata-in-web-api/create-a-read-only-odata-endpoint

и был запущен в кратчайшие сроки.

Надеюсь, это поможет. Такая приятная вещь для работы с проектированием и потреблением.

www.odata.org/ для получения дополнительной информации

PS. ссылки, которые я опубликовал, также имеют примеры операций CRUD .... PSS. IQueryable - это точка .....