2012-08-07 147 views
0
public class MyConfiguration : EntityTypeConfiguration<MyCode> 
{ 
    public MyConfiguration() 
    { 
    HasKey(c => new { c.MyCodeId, c.EffectiveDateFrom, c.EffectiveDateTo }); 
    Property(c => c.MyCodeId).HasColumnName("MyCode"); 
    Property(c => c.EffectiveDateFrom).HasColumnName("MyEffectiveDateFrom"); 
    Property(c => c.EffectiveDateTo).HasColumnName("MyEffectiveDateTo"); 

    ToTable("My_CODES"); 

    HasMany(d => d.MyGroups).WithRequired().HasForeignKey(k => k.MyCodeID); 
    } 
} 

這是我在EF4中的配置類。組合鍵EF映射

我已經定義了IList<MyGroup>類型的「MyGroups」屬性。

「MyGroup」類沒有「EffectiveDateFrom」和「EffectiveDateTo」屬性。

運行時間以下拋出異常:

System.Data.Edm.EdmAssociationConstraint:在一個關係約束的從屬和主角色屬性的數目必須是相同的。

查詢:
如何EF4造成這種映射,當家長使用的所有列是不可用的子表?

+0

這在數據庫中看起來像什麼?如果MyCodeId沒有唯一標識一個MyCode記錄,MyGroup記錄如何知道它引用了哪條記錄? – 2012-08-07 10:00:59

+0

MyGroup表具有列MyCodeId,GroupNumber和TabNumber的組合鍵conscons – user1581337 2012-08-07 11:20:04

+0

您的數據庫是否需要更改?如果是這樣,請添加一個主鍵並讓其他字段用作備用鍵。無論如何,有意義的主鍵都是令人討厭的。 – 2012-08-07 12:41:47

回答

0

您無法創建這樣的映射,因爲它無效。從屬實體中的外鍵必須包含主體實體中定義的複合主鍵的所有組件。