Предоставление OData в приложении MVC - PullRequest
4 голосов
/ 07 ноября 2010

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

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

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

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

Ответы [ 3 ]

2 голосов
/ 21 августа 2013

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

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

- это то место, где вы можете получить отличное начало по одатам.*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 это точка .....

2 голосов
/ 07 ноября 2010

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

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

1 голос
/ 26 апреля 2013

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

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

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

enter image description here

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

enter image description here

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

, используя Систему;using System.Collections.Generic;using 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) Установите точку останова в конце метода Main.А теперь отладка приложения.Вы увидите список категорий.

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

PS Посмотрите и это видео http://www.youtube.com/watch?v=e07TzkQyops.

...