Skip to content

NullReferenceException in UnversionedODataPathRouteConstraint line 54 #531

Closed
@luanle1106

Description

@luanle1106

I have this issue when request query below:

http://localhost:60365/odata/Orders(20F37D86-3427-4A9E-8D63-16AEDDDB28FC,'BE')

NullReferenceException: Object reference not set to an instance of an object.
Microsoft.AspNet.OData.Routing.UnversionedODataPathRouteConstraint.Match(HttpContext httpContext, IRouter route, string routeKey, RouteValueDictionary values, RouteDirection routeDirection) in UnversionedODataPathRouteConstraint.cs, line 54

I'm using

Microsoft.AspNetCore.OData 7.2.1

and

Microsoft.AspNetCore.OData.Versioning 3.2.0.

This is my api config:

services.AddApiVersioning(options =>
             {
                 options.AssumeDefaultVersionWhenUnspecified = true;
                 options.ApiVersionReader = ASOFTApiVersions.CombineApiVersion;
                 setupAction?.Invoke(options);
             });
services.AddMvcCore(options => options.EnableEndpointRouting = false);

            // Add odata and enable Apiversion support
services.AddOData().EnableApiVersioning();

services.AddSingleton(sp => new ODataUriResolver
            {
                EnableNoDollarQueryOptions = true
            });

My model configuration:

public class OrdersModelConfiguration : IModelConfiguration
    {
        public void Apply(ODataModelBuilder builder, ApiVersion apiVersion)
        {
            var orderEntityBuilder = builder.EntitySet<POST0016Entity>("Orders");

            orderEntityBuilder.EntityType.HasKey(m => new { m.APK, m.DivisionID });

            orderEntityBuilder.EntityType.Ignore(m => new { m.DeleteFlg });

            orderEntityBuilder.EntityType.Expand(SelectExpandType.Allowed, "Items");

            builder.EntityType<POST00161Entity>().HasKey(e => new { e.APK, e.DivisionID });
        }
    }

And my action in controller:

[EnableQuery]
public IActionResult Get([FromODataUri] Guid keyAPK, [FromODataUri] string keyDivisionID)
{
            return Ok(SingleResult.Create(_context.Orders
                .Where(e => e.APK == keyAPK && e.DivisionID == keyDivisionID).AsNoTracking()));
 }

Metadata

Metadata

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions