2012-04-17 3 views
0

私はモデルビークルと別のモデルを持っているので、ビークルからモデルへの1対多の関係があります。 は、車両クラスがこのように定義されていますEntity Framework 4でのカスタムリレーションシップのマッピングコードファースト

public class Vehicle 
{ 
    public int VehicleId { get; set; } 
    ... 
    public virtual Model Model { get; set; } 
} 

問題は、私は既存のデータベースにこれらのクラスをマッピングしていますので、私はこれをやっているということです。

modelBuilder.Entity<Vehicle>().ToTable("TB_Vehicles"); 
     modelBuilder.Entity<Vehicle>().Property(x => x.Color).HasColumnName("DR_Color"); 

     modelBuilder.Entity<Model>().ToTable("TB_Models"); 
     modelBuilder.Entity<Model>().Property(x => x.ModelId).HasColumnName("CD_Model"); 
     modelBuilder.Entity<Model>().Property(x => x.Description).HasColumnName("DS_Description"); 

だから私のテーブルTB_Modelsが列CD_Modelを持っていますこれは主キーであり、私のテーブルTB_Vehiclesには外部キーである列CD_Modelもあります。 どのようにマップできますか?

答えて

0

次のようにマップできます。

modelBuilder.Entity<Vehicle>() 
      .HasOptional(v => v.Model) 
      .WithMany() 
      .Map(m => m.MapKey("CD_Model")); 

外部キーが非NULL可能使用HasRequiredの代わりHasOptionalある場合。

関連する問題