C# 使用ASP.NET-Core mvc在EF Core和oData中路由m:n关系

C# 使用ASP.NET-Core mvc在EF Core和oData中路由m:n关系,c#,asp.net-core,asp.net-core-mvc,entity-framework-core,odata,C#,Asp.net Core,Asp.net Core Mvc,Entity Framework Core,Odata,我目前正在尝试将ASP.NET-mvc web应用程序迁移到ASP.NET核心。今天,我在使用EntityFramework核心和使用oData路由数据时遇到了一个大问题 问题是EntityFramework的核心版本生成桥接实体(就像在实际的DB中)来处理m:n关系,而旧版本的处理方式不同。现在,如果我尝试使用oData$expand从另一个实体(m)访问实体(n),我会得到一个空结果 我尝试使用这个例子,但也没有得到任何结果 旧的处理方式m:n: 也许以前有人遇到过这个问题?我感谢你的任何

我目前正在尝试将ASP.NET-mvc web应用程序迁移到ASP.NET核心。今天,我在使用EntityFramework核心和使用oData路由数据时遇到了一个大问题

问题是EntityFramework的核心版本生成桥接实体(就像在实际的DB中)来处理m:n关系,而旧版本的处理方式不同。现在,如果我尝试使用oData$expand从另一个实体(m)访问实体(n),我会得到一个空结果

我尝试使用这个例子,但也没有得到任何结果

旧的处理方式m:n:

也许以前有人遇到过这个问题?我感谢你的任何建议。如果需要更多代码或信息,请与我联系。提前感谢:)

modelBuilder.Entity<App>()
    .HasMany(e => e.News)
    .WithMany(e => e.Apps)
    .Map(m => m.ToTable("Apps_News").MapLeftKey("AppId").MapRightKey("NewsId"));
modelBuilder.Entity<AppsNews>(entity =>
{
    entity.HasKey(e => new { e.AppId, e.NewsId })
        .HasName("PK_dbo.Apps_News");

    ...

    entity.HasOne(d => d.News)
        .WithMany(p => p.AppsNews)
        .HasForeignKey(d => d.NewsId)
        .HasConstraintName("FK_dbo.Apps_News_dbo.News_NewsId");

    entity.HasOne(d => d.App)
        .WithMany(p => p.AppsNews)
        .HasForeignKey(d => d.AppId)
        .HasConstraintName("FK_dbo.Apps_News_dbo.Apps_AppId");
});
<EntitySet Name="Apps" EntityType="App">
<NavigationPropertyBinding Path="App" Target="Apps"/>
<NavigationPropertyBinding Path="News" Target="News"/>
<NavigationPropertyBinding Path="AppsNews/News" Target="News"/>
<NavigationPropertyBinding Path="AppsNews/App" Target="Apps"/>
</EntitySet>
"Id": "123",
"Text": test,
"Title": "test",
"Apps": []