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