簡単にするために、私には3つのエンティティ(1対多、左から右)があります。
コース->モジュール->チャプター
コースには複数のモジュールを含めることができ、モジュールには複数のチャプターを含めることができます。
私がコントローラーに持っているのはこれだけです:
Course course = db.Courses.Find(id);
return View(course);
インクルードを使用しようとしましたが、評価されないようです(これは機能しないようですCourse course = db.Courses.Include("Modules").Find(id);
:)
だから私はそれをさせます。私の見解では、私はこのネストされたリストを持っています:
<ul>
@foreach (var item in Model.Modules)
{
<li>@module.Title
<ul>
@foreach (var item in module.Chapters)
{
<li>@chapter.Title</li>
}
</ul>
</li>
}
</ul>
これは自動的に機能しますか?
最後に、子エンティティを配置できるように、SortOrder列を適用しました。これはクエリで実行する必要があることはわかっていますが、どうすればこれを実行できますか?
ありがとう!情報やアドバイスをいただければ幸いです。
アップデート
コースクラス
public partial class Course
{
public Course()
{
this.Modules = new HashSet<Module>();
this.Assets = new HashSet<Asset>();
}
public int Id { get; set; }
public string Name { get; set; }
public string Description { get; set; }
public string Author { get; set; }
public System.DateTime CreateDate { get; set; }
public bool IsDeleted { get; set; }
public int IndustryId { get; set; }
public virtual ICollection<Module> Modules { get; set; }
public virtual ICollection<Asset> Assets { get; set; }
public virtual Industry Industry { get; set; }
}
モジュールクラス
namespace RocketLabs.Models
{
using System;
using System.Collections.Generic;
public partial class Module
{
public Module()
{
this.Chapters = new HashSet<Chapter>();
this.Assets = new HashSet<Asset>();
}
public int Id { get; set; }
public string Title { get; set; }
public System.DateTime CreateDate { get; set; }
public int CourseId { get; set; }
public bool IsDeleted { get; set; }
public short SortOrder { get; set; }
public virtual Course Course { get; set; }
public virtual ICollection<Chapter> Chapters { get; set; }
public virtual ICollection<Asset> Assets { get; set; }
public virtual Exam Exam { get; set; }
}
}
チャプタークラス
namespace RocketLabs.Models
{
using System;
using System.Collections.Generic;
public partial class Chapter
{
public Chapter()
{
this.Assets = new HashSet<Asset>();
}
public int Id { get; set; }
public string Title { get; set; }
public int ModuleId { get; set; }
public string Notes { get; set; }
public short SortOrder { get; set; }
public System.DateTime CreateDate { get; set; }
public bool IsDeleted { get; set; }
public virtual Module Module { get; set; }
public virtual ICollection<Asset> Assets { get; set; }
}
}