Добавление с учетом регистра для OData в vb.net - PullRequest
0 голосов
/ 07 ноября 2019

Я добавил OData v4 в свой WebApi, и он отлично работает. Я следовал этой инструкции: https://docs.microsoft.com/en-us/odata/webapi/getting-started

Однако я заметил, что мне нужна нечувствительность к регистру. Я нашел решение в C #: OData и .NET Core 2 Web API - отключить чувствительность к регистру?

Но как-то оно у меня не работает. Когда я пытаюсь это сделать, он говорит:

Не найден ресурс HTTP, соответствующий URI запроса '[my url]'.

Метод регистрации, который работает:

Public Shared Sub Register(ByVal config As HttpConfiguration)
    builder = New ODataConventionModelBuilder()
    builder.EntitySet(Of vw_CompanyPerson)("profiles")
    config.MapODataServiceRoute("odata", "odata", builder.GetEdmModel())

    config.Select().Expand().Filter().OrderBy().MaxTop(Nothing).Count()
End Sub

Это мой код:

Imports System.Web.Http
Imports Guestline.RezLynx.Persistence
Imports Microsoft.AspNet.OData.Builder
Imports Microsoft.AspNet.OData.Extensions
Imports Microsoft.OData
Imports Microsoft.OData.UriParser

Public Class WebApiConfig

    Private Shared Property builder() As ODataModelBuilder

    Public Shared Sub Register(ByVal config As HttpConfiguration)
        builder = New ODataConventionModelBuilder()
        builder.EntitySet(Of vw_CompanyPerson)("profiles")

        config.MapODataServiceRoute(
            "odata",
            "odata",
            New Action(Of IContainerBuilder)(AddressOf ModifyContainer))

        config.Select().Expand().Filter().OrderBy().MaxTop(Nothing).Count()
    End Sub

    Private Shared Sub ModifyContainer(obj As IContainerBuilder)
        obj.AddService(ServiceLifetime.Singleton, New Func(Of IServiceProvider, ODataUriResolver)(AddressOf CreateUriResolver))
        obj.AddService(ServiceLifetime.Singleton, New Func(Of IServiceProvider, Edm.IEdmModel)(AddressOf GetEdmModel))
    End Sub

    Private Shared Function GetEdmModel(arg As IServiceProvider) As Edm.IEdmModel
        Return builder.GetEdmModel()
    End Function

    Private Shared Function CreateUriResolver(arg As IServiceProvider) As ODataUriResolver
        Return New CaseInsensitiveUriResolver()
    End Function

End Class

И:

Imports Microsoft.OData.UriParser

Public Class CaseInsensitiveUriResolver
    Inherits ODataUriResolver

    Public Overrides Property EnableCaseInsensitive As Boolean
        Get
            Return True
        End Get
        Set(value As Boolean)

        End Set
    End Property

End Class
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...