Предоставление OData в приложении MVC

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

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

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

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


person halfbit    schedule 07.11.2010    source источник


Ответы (3)


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

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

person John Farrell    schedule 07.11.2010

Я писал Restfull API в 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/началоработысodata-in-web-api/create-a-read-only-odata-endpoint

и заработал в кратчайшие сроки.

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

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

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

person Karl Wilson    schedule 20.08.2013

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

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

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

введите здесь описание изображения

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

введите здесь описание изображения

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

введите здесь описание изображения

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

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

А также вы получаете значение свойства следующим образом:

введите здесь описание изображения

P.S. Посмотрите это видео http://www.youtube.com/watch?v=e07TzkQyops< /а> тоже.

person DmitryBoyko    schedule 26.04.2013