rest - Diferencia entre Microsoft.OData.Core y Microsoft.Data.OData
asp.net-web-api spatial (1)
Estoy trabajando en Web Api con OData habilitado. Empecé a trabajar al referirme a ( solo se mencionan los dlls relevantes a la pregunta )
Microsoft.AspNet.WebApi.OData
Microsoft.Data.OData
Microsoft.Data.Edm
System.Spatial
Pero cuando descubrí que OData es sensible a las mayúsculas y minúsculas , busco una solución que no distinga mayúsculas de minúsculas y he pasado por algunos casos. Soporte OData Uri case insensitive parse y ODataLib 6.7.0 Release y finalmente aterrizado en el paquete nuget Microsoft.OData. Core 6.9.0 que parece resolver mi problema. Aquí comienza mi confusión , tiene sus propias bibliotecas relacionadas con la colección en diferentes espacios de nombres
Microsoft.OData.Core-----------VS------Microsoft.Data.OData
Microsoft.OData.Edm------------VS------Microsoft.Data.Edm
Microsoft.Spatial--------------VS------System.Spatial
¿Cuál es la diferencia entre las bibliotecas anteriores similares, donde debemos usar una sobre otra? En casos similares a los míos, se puede usar Microsoft.OData.Core en lugar de Microsoft.Data.OData, que está resolviendo un problema sensible a las mayúsculas y minúsculas.
1. Acerca del espacio de nombre,
Microsoft.Data.OData
Microsoft.Data.Edm
System.Spatial
son la implementación de la versión 3.0 de OData . El nombre del paquete en Nuget termina con OData v1-3 . Por ejemplo: ODataLib para OData v1-3
Mientras,
Microsoft.OData.Core
Microsoft.OData.Edm
Microsoft.Spatial
son la implementación de la especificación OData versión 4.0 . El nombre del paquete en Nuget no contiene la versión. Por ejemplo: ODataLib
2. Acerca de las mayúsculas y minúsculas
Web API OData admitirá llamadas de función / acción no calificadas, insensibles a las mayúsculas y minúsculas, y el prefijo Enum libre en la versión 5.4.
Aquí hay un ejemplo simple al que puedes referirte.
Los códigos fuente se mueven a: WebAPI OData en Github
Y puedes obtener el binario de la construcción nocturna.