C# EF Core 6则包含有错误的参考
以下是我的数据模型: 这是我的密码C# EF Core 6则包含有错误的参考,c#,entity-framework-core,C#,Entity Framework Core,以下是我的数据模型: 这是我的密码 Context.editories .包括(p=>p.Person) .包括(c=>c.注释) .然后包括(c=>c.Person) .FirstOrDefault(e=>e.Slug==Slug); 以下是错误引用的结果: 以下是请求的上下文文件: 使用Microsoft.EntityFrameworkCore; 名称空间导管.Data { 公共类ConduitContext:DbContext { 公共数据库集帐户{get;set;} 公共数据库集
Context.editories
.包括(p=>p.Person)
.包括(c=>c.注释)
.然后包括(c=>c.Person)
.FirstOrDefault(e=>e.Slug==Slug);
以下是错误引用的结果:
以下是请求的上下文文件:
使用Microsoft.EntityFrameworkCore;
名称空间导管.Data
{
公共类ConduitContext:DbContext
{
公共数据库集帐户{get;set;}
公共数据库集人物{get;set;}
公共数据库集在{get;set;}之后
公共DbSet社论{get;set;}
公共DbSet注释{get;set;}
公共数据库集收藏夹{get;set;}
公共DbSet标记{get;set;}
模型创建时受保护的覆盖无效(ModelBuilder ModelBuilder)
{
modelBuilder.Entity(Entity=>
{
实体
.HasIndex(e=>e.Email,“IX_账户\电子邮件\唯一”)
.IsUnique();
});
modelBuilder.Entity(Entity=>
{
实体
.Property(e=>e.Id)
.ValueGeneratedNever();
实体
.HasOne(d=>d.Account)
.一人(p=>p.人)
.HasForeignKey(d=>d.Id)
.OnDelete(DeleteBehavior.ClientSetNull);
实体
.Property(e=>e.Image)
.HasDefaultValueSql(“'https://static.productionready.io/images/smiley-cyrus.jpg'");
});
modelBuilder.Entity(Entity=>
{
HasKey(e=>new{e.Follower,e.Following});
entity.HasOne(d=>d.FollowerNavigation)
.有许多(p=>p.后续活动)
.HasForeignKey(d=>d.Follower)
.OnDelete(DeleteBehavior.ClientSetNull)
.HasConstraintName(“FK_Follower_Profiles”);
entity.HasOne(d=>d.com)
.WithMany(p=>p.following导航)
.HasForeignKey(d=>d.Following)
.OnDelete(DeleteBehavior.ClientSetNull)
.HasConstraintName(“FK_以下简称“FK_”);
});
modelBuilder.Entity(Entity=>
{
Property(e=>e.CreatedAt)
.HasColumnType(“日期时间”)
.HasDefaultValueSql(“(getutcdate())”);
Property(e=>e.UpdatedAt)
.HasColumnType(“日期时间”)
.HasDefaultValueSql(“(getutcdate())”);
entity.HasOne(d=>d.Person)
.有许多(p=>p.社论)
.HasForeignKey(d=>d.PersonId)
.OnDelete(DeleteBehavior.ClientSetNull)
.HasConstraintName(“FK_文章_人物”);
});
modelBuilder.Entity(Entity=>
{
Property(e=>e.CreatedAt)
.HasColumnType(“日期时间”)
.HasDefaultValueSql(“(getutcdate())”);
Property(e=>e.updateeat)
.HasColumnType(“日期时间”)
.HasDefaultValueSql(“(getutcdate())”);
entity.HasOne(d=>d.editive)
.WithMany(p=>p.评论)
.HasForeignKey(d=>d.EditorialId)
.OnDelete(DeleteBehavior.ClientSetNull)
.HasConstraintName(“FK_评论_社论”);
entity.HasOne(d=>d.Person)
.WithMany(p=>p.评论)
.HasForeignKey(d=>d.EditorialId)
.OnDelete(DeleteBehavior.ClientSetNull)
.HasConstraintName(“FK_评论人”);
});
modelBuilder.Entity(Entity=>
{
entity.HasKey(e=>new{e.PersonId,e.EditorialId});
entity.HasOne(d=>d.editive)
.WithMany(p=>p.Favorites)
.HasForeignKey(d=>d.EditorialId)
.OnDelete(DeleteBehavior.ClientSetNull)
.HasConstraintName(“FK_收藏夹_社论”);
entity.HasOne(d=>d.Person)
.WithMany(p=>p.Favorites)
.HasForeignKey(d=>d.PersonId)
.OnDelete(DeleteBehavior.ClientSetNull)
.HasConstraintName(“FK_Favorites_People”);
});
基于模型创建(modelBuilder);
}
public ConduitContext(DbContextOptions选项):基本(选项){}
}
}
上下文文件的大小与。。。StackOverflow让我很难发布这么多代码
是EF Core在社论上把人物参考与人物参考交叉了吗?我能给EF Core一些提示来帮助自己避免错误的引用吗?我想你这里有个错误:
modelBuilder.Entity<Commentary>(entity =>
{
...
entity.HasOne(d => d.Person)
.WithMany(p => p.Commentaries)
.HasForeignKey(d => d.EditorialId) // Here: shouldn't it be PersonId ??
.OnDelete(DeleteBehavior.ClientSetNull)
.HasConstraintName("FK_Commentaries_People");
...
}
modelBuilder.Entity(Entity=>
{
...
entity.HasOne(d=>d.Person)
.WithMany(p=>p.评论)
.HasForeignKey(d=>d.EditorialId)//这里:它不应该是PersonId吗??
.OnDelete(DeleteBehavior.ClientSetNull)
.HasConstraintName(“FK_评论人”);
...
}
我想你的上下文映射不正确。你能将上下文文件粘贴到这里吗。@Ingale88s-我用上下文文件更新了帖子。提前谢谢你。sharp eye。我完全错过了那篇文章。我做了更改,成功了!谢谢。哈哈,没问题:)