【发布时间】:2016-09-15 12:00:15
【问题描述】:
我不确定如何在多->多关系的上下文中定义 Include(..).ThenInclude(...)。
所以这是填充导航属性,SiteEducators 是链接
var site = this._dbContext.Sites.Include(x => x.SiteEducators).FirstOrDefault();
根据文档定义
public DbSet<Educator> Educators { get; set; }
public DbSet<Site> Sites { get; set; }
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
#region Site->Educator Link
modelBuilder.Entity<SiteEducator>()
.HasKey(t => new { t.SiteId, t.EducatorId });
modelBuilder.Entity<SiteEducator>()
.HasOne(pt => pt.Site)
.WithMany(p => p.SiteEducators)
.HasForeignKey(pt => pt.SiteId);
modelBuilder.Entity<SiteEducator>()
.HasOne(pt => pt.Educator)
.WithMany(t => t.SiteEducators)
.HasForeignKey(pt => pt.EducatorId);
#endregion
}
问题是如果我调试“站点”它有导航属性,我可以看到“EducatorId”的值很好,但它的导航属性到 Educator 为空。
所以这将是空的
model.SiteEducators.FirstOrDefault().Educator
这将返回一个值
model.SiteEducators.FirstOrDefault().EducatorId
我的意思的例子:
数组上一定有某种“ThenInclude”吗?
我如何充实这个其他对象,语法是什么,有什么想法吗?
任何帮助都会很棒,谢谢大家:)
【问题讨论】:
-
你的模型代码也可以吗?
-
当然,我会在我的手机上并且不能真的...但它直接从文档中取出。 docs.efproject.net/en/latest/modeling/…
-
文档只是没有说明如何填充数据:/
标签: asp.net-core entity-framework-core