Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net core 在EF Core中填充许多导航属性_Asp.net Core_Entity Framework Core - Fatal编程技术网

Asp.net core 在EF Core中填充许多导航属性

Asp.net core 在EF Core中填充许多导航属性,asp.net-core,entity-framework-core,Asp.net Core,Entity Framework Core,我不确定如何定义Include(…)。然后在多->多关系的上下文中定义Include(…) 这是填充nav属性,是链接 var site = this._dbContext.Sites.Include(x => x.SiteEducators).FirstOrDefault(); 根据文档定义 public DbSet<Educator> Educators { get; set; } public DbSet<Site> Sites { get;

我不确定如何定义Include(…)。然后在多->多关系的上下文中定义Include(…)

这是填充nav属性,是链接

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
    }
这将返回一个值

model.SiteEducators.FirstOrDefault().EducatorId
举例说明我的意思:

数组上必须有某种“thenclude”吗

我该如何充实另一个对象,synatax是什么,有什么想法吗


任何帮助都会很好,thx伙计们:)

好吧,看来这是一系列git问题,以下是修复:

1) 在ApplicationDbContext中映射链接表对象

public DbSet<SiteEducator> SiteEducator { get; set; }

问题是文档遗漏了映射链接表的重要部分,没有这一点,似乎就没有办法加载列表中的嵌套对象。

你能把模型代码也放进去吗?当然,我在手机上,真的不能。。。但这是直接从文件中说出来的。文档只是没有说明如何填充数据:/
public DbSet<SiteEducator> SiteEducator { get; set; }
var site = this._dbContext.Sites
               .Include(x => x.SiteEducators)
               .Include(x => x.Studies)
               .FirstOrDefault(x => x.SupervisorToken == key);


//Dummy query to load the data
this._dbContext.SiteEducator.Include(x => x.Educator).Where(x => x.SiteId == site.Id).Load();