私はEntity Frameworkを学ぶための簡単なアプリケーションを構築しています。おおよそthisとthisのチュートリアルに従います。Entity Frameworkスキャフォールドと関連データ
私は正常にコードを作成した後、クエリを実行して、予期されるデータと、シードされたデータとの一対一の関係の正しいキーを確認できます。
public class Organization
{
public Organization()
{
Members = new HashSet<Member>();
}
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public Guid ID { get; set; }
public string Name { get; set; }
public virtual ICollection<Member> Members { get; set; }
}
public class Member
{
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public Guid ID { get; set; }
public string Name { get; set; }
public string Note { get; set; }
public Guid OrganizationID { get; set; }
public virtual Organization Organization { get; set; }
}
public class OrganizationMemberContext : DbContext
{
public OrganizationMemberContext(DbContextOptions<OrganizationMemberContext> options) : base(options)
{
}
public DbSet<Organization> Organizations { get; set; }
public DbSet<Member> Members { get; set; }
}
私はOrganizationMemberContextを使用してOrganization
モデルのための足場コントローラを作成する上で続け、それは美しく動作します。 CRUD操作は期待どおりに動作しているようです。
私は、その組織の各組織のメンバーリストをインデックスページに表示したかったのです。しかし、私が考えるべきことは、動くべきだと思うものは、関連するデータを返しません
public async Task<IActionResult> Index()
{
_context.Organizations.Include(x => x.Members);
return View(await _context.Organizations.ToListAsync());
}
私は組織のリストを取得しますが、各組織のメンバープロパティは、(VSで地元の人々を見て確認)ページに送信されたモデルでは空です。
再び、播種データが正しく挿入されている:私は予想通りOrganization.ID値を正確Member.OrganizationID値と一致するDBで見ることができます。
これはあなたのために働く可能性があります 公共タスクインデックス(){ リターンビュー(のawait _context.Organizations.Include非同期(x =>。メンバー).ToListAsync()); } –
Sarbanjeet
クエリ内部のインクルードを試してください。 _context.Orgranizations.Include(x => x.Members).ToListASync()); – uk2k05
インクルードは最初のステートメントで呼び出され、ビューをレンダリングする2番目のステートメントではありません –