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

の形でテーブルを生成する方法はあるでしょうか?
(階層化されたクラスをフラットなテーブルにマッピングしたい)