2016-08-04 1 views
11

Я создаю службу RESTful с использованием Web API и Entity Framework с конечными точками OData. Пакеты Microsoft.AspNet.WebApi.OData и Microsoft.Data.OData и Microsoft.AspNet.OData кажутся перекрывающимися, поэтому я не был уверен, какой из них использовать. Каковы различия между ними? Каковы плюсы и минусы каждого?В чем разница между Microsoft.AspNet.WebApi.OData и Microsoft.Data.OData и Microsoft.AspNet.OData?

ответ

12

Microsoft.AspNet.OData это тот, который вы, скорее всего, захотите использовать для нового проекта. Он устанавливает веб-API для использования протокола OData 4.

Microsoft.AspNet.WebApi.OData - это старый пакет для OData v1-3. Он имеет зависимость от некоторых основных элементов OData от Microsoft.Data.OData, который представляет собой пакет ODataLib для OData v1-3. (Версия OData v4 это Microsoft.OData.Core, которая является зависимой от Microsoft.AspNet.OData.)

+0

Привет, я играю с webapi + odata, и мне было интересно, почему пакет добавляет так много зависимостей от проекта? Microsoft.AspNet.OData (OK). Microsoft.Extensions.DependencyInjection Microsoft.Extensions.DependencyInjection.Abstractions Microsoft.OData.Core Microsoft.OData.Edm Microsoft.Spatial System.Collections System.Collections .Concurrent System.ComponentModel System.Diagnostics.Debug System.Globalization System.Linq System.Linq.Expressions System.Reflection System.Resources.ResourceManager System.Runtime.Extensions System.Threading System.Threading.Tasks – spilote

+0

@spilote: Я думаю, это потому, что библиотеки OData и Web API * используют * эти другие библиотеки. Скорее всего, это стало заметно сейчас, потому что .NET Core разбил многие части на отдельные библиотеки, тогда как они были автоматически включены как часть базовых классов. – StriplingWarrior