2015-09-11 16 views
5

私はFK ProductIdを使用してリレーションを持つエンティティを持っています。次に、ProductIdとVehicleIdの複合キーを使用して同じエンティティに対して別のリレーションを持っています。これは動作しません。私はプロパティ名 'ProductId'は既に定義されています

つまたは複数の検証エラーがモデル生成時に検出された取得:

のProductId名前:タイプの各プロパティ名は一意である必要があります。プロパティ 'ProductId'という名前が既に定義されています。

コンフィグコード

public class BookingConfiguration : EntityTypeConfiguration<Booking> 
    { 
     public BookingConfiguration() 
     {  
      ... 

      HasRequired(b => b.Product) 
       .WithMany(p => p.Bookings) 
       .Map(m => 
       { 
        m.MapKey("ProductId"); 
       }); 

      HasRequired(b => b.Vehicle) 
       .WithMany(v => v.Bookings) 
       .Map(m => 
       { 
        m.MapKey("ProductId","VehicleId"); 
       }); 
     } 
    } 
+2

ProductIdがBookingモデルに存在する場合、MapKey()の代わりにHasForeignKey()を試しましたか? http://stackoverflow.com/questions/17639599/entity-framework-property-name-in-a-type-must-be-unique –

答えて

3

スティーブ・グリーンは、右のトラックに私を置く私はエンティティへProductIdVehicleIdを追加し、私は好きではないドメインの視点で

HasRequired(b => b.Vehicle) 
    .WithMany() 
    .HasForeignKey(b => new {b.ProductId, b.VehicleId}); 

を使用しましたエンティティに外部キーを追加するので、誰かがより良い解決策を持っている場合はお知らせください。

関連する問題