入れ子のクラスでコードファーストを使いたい
public class Hoge1
{
public int Id { get; set; }
public Hoge2 Hoge2 { get; set; }
}
public class Hoge2
{
public string Value { get; set; }
}
このようなクラスで Update-Database でHoge1テーブルを生成すると、
Id
Hoge2_Value
の列を持った Hoge1テーブルが作成されます。
クラスの入れ子をさらに増やして、
public class Hoge1
{
public int Id { get; set; }
public Hoge2 Hoge2 { get; set; }
}
public class Hoge2
{
public string Value { get; set; }
public Hoge3 Hoge3 { get; set; }
}
public class Hoge3
{
public string Value { get; set; }
}
とした場合、 Update-Database は以下のエラーになってしまいます。
モデルの生成中に 1 つまたは複数の妥当性確認エラーが見つかりました:
xxxxx.Hoge2: : EntityType 'Hoge2' にはキーが定義されていません。この EntityType にはキーを定義してください。
Hoge2: EntityType: EntitySet 'Hoge2' はキーが定義されていない型 'Hoge2' に基づいています。
エラーにならずに、
Id
Hoge2_Value
Hoge2_Hoge3_Value
の形でテーブルを生成する方法はあるでしょうか?
(階層化されたクラスをフラットなテーブルにマッピングしたい)