public class Hoge1
{
    public int Id { get; set; }
    public Hoge2 Hoge2 { get; set; }
}

[ComplexType]
public class Hoge2
{
    public string Text { get; set; }
    public Hoge3 Hoge3A { get; set; }
    public Hoge3 Hoge3B { get; set; }
}

[ComplexType]
public class Hoge3
{
    public string Value1 { get; set; }
    public string Value2 { get; set; }
    public string Value3 { get; set; }
    ・・・
    public string Value99 { get; set; }
}

コードファーストでテーブルを作成すると以下のような列名で生成されます。

[Hoge2_Text]
[Hoge2_Hoge3A_Value1]
[Hoge2_Hoge3A_Value2]
[Hoge2_Hoge3A_Value3]
・・・
[Hoge2_Hoge3A_Value99]
[Hoge2_Hoge3B_Value1]
[Hoge2_Hoge3B_Value2]
[Hoge2_Hoge3B_Value3]
・・・
[Hoge2_Hoge3B_Value99]

これを

[Text]
[Hoge3A_Value1]
[Hoge3A_Value2]
[Hoge3A_Value3]
・・・
[Hoge3A_Value99]
[Hoge3B_Value1]
[Hoge3B_Value2]
[Hoge3B_Value3]
・・・
[Hoge3B_Value99]

のような列名にしたいです。

protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
    modelBuilder.Entity<Hoge1>().Property(entity => entity.Hoge2.Text).HasColumnName("Text");
    modelBuilder.Entity<Hoge1>().Property(entity => entity.Hoge2.Hoge3A.Value1).HasColumnName("Hoge3A_Value1");
    modelBuilder.Entity<Hoge1>().Property(entity => entity.Hoge2.Hoge3A.Value2).HasColumnName("Hoge3A_Value2");
    modelBuilder.Entity<Hoge1>().Property(entity => entity.Hoge2.Hoge3A.Value3).HasColumnName("Hoge3A_Value3");
    ・・・
    modelBuilder.Entity<Hoge1>().Property(entity => entity.Hoge2.Hoge3B.Value99).HasColumnName("Hoge3B_Value99");

と書けば実現できるところまでは理解できましたが、もっとシンプルに記述する方法はあるでしょうか?
(クラス階層の中間にある Hoge2 を列名のプレフィクスから除外したい)