ASP.NET MVC に関するいくつかのチュートリアル (こことここ) を試してみて、自分でいくつかのことを試すことにしました。Resume
これで、 、Descriptions
、 の3 つのテーブルができましたSubDescriptions
。3つのコードは次のとおりです。
public class Resume
{
public Resume()
{
Descriptions = new List<Description>();
}
[Key]
public int ResumeId { get; set; }
[Required]
public string Employer { get; set; }
[DataType(DataType.Date)]
public DateTime StartDate { get; set; }
[DataType(DataType.Date)]
public DateTime EndDate { get; set; }
[Required]
public string Location { get; set; }
[Required]
public virtual ICollection<Description> Descriptions { get; set; }
}
public class Description
{
public Description()
{
SubDescriptions = new List<SubDescription>();
}
[Key]
public int DescriptionId { get; set; }
[ForeignKey("Resume")]
public int ResumeId { get; set; }
[Required]
public string Desc { get; set; }
public virtual Resume Resume { get; set; }
public virtual ICollection<SubDescription> SubDescriptions { get; set; }
}
public class SubDescription
{
[Key]
public int SubDescriptionId { get; set; }
[ForeignKey("Description")]
public int DescriptionId { get; set; }
[Required]
public string Sub { get; set; }
public virtual Description Description { get; set; }
}
そして、私のSeed()
は次のとおりです。
protected override void Seed(ResumeDBContext context)
{
context.Resumes.AddOrUpdate(i => i.Employer,
new Resume
{
Employer = "Employer Test",
StartDate = DateTime.Parse("2012-3-26"),
EndDate = DateTime.Parse("2013-10-24"),
Location = "Houston, TX",
Descriptions = { new Description
{ Desc = "DescTest",
SubDescriptions = {new SubDescription {Sub = "SubTest"},
new SubDescription {Sub = "SubTest2"},
new SubDescription {Sub = "SubTest3"}}
},
new Description { Desc = "DescTest2" }}
}
);
}
update-database
これで、パッケージ マネージャー コンソールから実行すると、実行中と表示されSeed()
ます。ただし、データベースにクエリを実行すると、SubDescriptions
テーブルはまだ空です。他のすべては期待どおりに入力されます。エラーなどは表示されません。私は自分の協会で何かばかげたことを見逃していますか?
Resume
テーブルは から適切にSeed()
読み込まれ、テーブルDescriptions
にも適切に関連付けられて読み込まれResume
ます。それでも、同じ例に従って入力しようとするSubDescriptions
と、テーブルは完全に空になります。関連付けとナビゲーション プロパティは正しく設定されているように見えますが、私はこれが初めてなので、100% 確実ではありません。