如何使用 OData v4 6.0.0 在 .NET 中进行嵌套的 OData 调用?

How can I make a nested OData call in .NET using OData v4 6.0.0?

假设我的 WebApiConfig.cs 中有以下内容:

        modelBuilder.EntitySet<Content>("Content");
        modelBuilder.EntitySet<Area>("Area");

我有以下 类:

public class Area
{
    public string Id { get; set; }

    public ICollection<Content> Contents { get; set; }
}

public class Content
{
    public string Id { get; set; }

    [ForeignKey("Area")]
    public int? AreaId { get; set; }
    public virtual Area Area { get; set; }
}

如何制作绑定到以下路由的 ODataController 操作方法?

GET /odata/Area(Id)/Content(Id)

当我尝试制定自定义路由约定时,我不断收到以下 ODataPath:

"~/entityset/key/unresolved"

我正试图得到这个:

"~/entityset/key/navigation/key"

注意:我使用的是 v4 OData 的 v6.0.0,所以一些路由与以前的版本有所不同。

URL /odata/Area(Id)/Content(Id) 中的名称 Content 需要与 class Area 中的导航名称 属性 匹配。在你的class问题中,它被称为Contents