我正在使用实体框架从数据库中检索博客数据。我有一个“BlogPost”类和一个“作者”类。一位作者可能有许多博客文章,但作者对象本身不包含他们的列表。就作者对象而言,它独立于所有博客文章。实体框架 - 子对象中的外键
Author类的实例作为BlogPost中的一个属性包含在内。每个作者都有一个AuthorId。我想从我的数据库中提取给定的博客,并让作者对象填充相关数据。我已设法通过在我的博文类中的AuthorID属性,使用下面的代码映射对象要做到这一点:
this.HasRequired(t => t.Author).WithMany().HasForeignKey(x => x.AuthorId);
我想这样做,但是,是能够做同样的事情但不必将AuthorId属性直接包含在模型中。原因是,因为作者对象已经包含相应的ID,所以我重复两次相同的信息。我想沿着这些线路做一些事情:
this.Property(t => t.Author.Id).HasColumnName("id_user");
this.HasRequired<TwitterUser>(t => t.Author).WithMany().HasForeignKey(t => t.Author.Id);
那么,有没有什么办法不检索作者子对象,而无需冗余存储的AuthorID在博客帖子对象旁边的作者对象本身?
只有一个导航属性的独立关联正常工作。你可以使用'HasRequired(t => t.Author).WithMany()'作为默认的FK(带有下划线,'Author_Id'的东西)或追加'.Map(m => m.MapKey(“AuthorId” ))'用于映射FK名称的显式。 – Slauma
@Slauma - 嗯..有趣的知道。我读过的所有内容都说独立关联需要两端的导航属性。 –