Microsoft.AspNet.WebApi.OData 与 Microsoft.Data.OData 和 Microsoft.AspNet.OData 有啥区别?
Posted
技术标签:
【中文标题】Microsoft.AspNet.WebApi.OData 与 Microsoft.Data.OData 和 Microsoft.AspNet.OData 有啥区别?【英文标题】:What is the difference between Microsoft.AspNet.WebApi.OData and Microsoft.Data.OData and Microsoft.AspNet.OData?Microsoft.AspNet.WebApi.OData 与 Microsoft.Data.OData 和 Microsoft.AspNet.OData 有什么区别? 【发布时间】:2016-12-10 23:35:15 【问题描述】:我正在使用带有 OData 端点的 Web API 和实体框架创建 RESTful 服务。 Microsoft.AspNet.WebApi.OData 和 Microsoft.Data.OData 和 Microsoft.AspNet.OData 包似乎重叠,所以我不确定使用哪一个。它们之间有什么区别?各有什么优缺点?
【问题讨论】:
更不用说 Microsoft.AspNetCore.OData.dll。我目前正在将 Microsoft.AspNetCore.OData.dll 与 .NET 6 一起使用,但看起来我需要名为DefaultODataSerializerProvider
和 ODataResourceSerializer
的类来自定义序列化,但第一个类仅存在于 Microsoft.AspNet.OData
,而不是 Microsoft.AspNetCore.OData
,而第二个存在于两者中。我很困惑。
【参考方案1】:
Microsoft.AspNet.OData
是您最有可能在新项目中使用的那个。它设置 Web API 以使用 OData 4 协议。
Microsoft.AspNet.WebApi.OData
是 OData v1-3 的旧软件包。它依赖于来自Microsoft.Data.OData
的一些核心 OData 片段,这是 OData v1-3 的“ODataLib”包。 (这个的OData v4版本是Microsoft.OData.Core
,是Microsoft.AspNet.OData
的依赖。)
【讨论】:
嗨,我在玩 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:我想这是因为 OData 和 Web API 库使用那些其他库。现在可能更引人注目了,因为 .NET Core 将其中的许多部分分解为单独的库,而它们过去是作为基类库的一部分自动包含的。以上是关于Microsoft.AspNet.WebApi.OData 与 Microsoft.Data.OData 和 Microsoft.AspNet.OData 有啥区别?的主要内容,如果未能解决你的问题,请参考以下文章