2014-04-11 32 views
0

我找到許多這樣的例子,但沒有人對我的作品......一對多映射實體框架用流利的API

我主要類:

public class Class1 
{ 
    public int id { get; set; } 
    public string desc { get; set; } 
    public virtual Class2 class2 {get; set;} 
} 

和第二類:

public class Class2 
{ 
    public int id { get; set; } 
    public string desc { get; set; } 
} 

我這樣

public class Class1Map : EntityTypeConfiguration<Class1> 
{ 
    public Class1Map() 
    { 
     // Primary Key 
     this.HasKey(t => t.Id); 

     // Table & Column Mappings 
     this.ToTable("Class1TableName"); 
     this.Property(t => t.id).HasColumnName("IdColumnName"); 
     this.Property(t => t.desc).HasColumnName("DescColumName"); 
    } 
} 
映射

,這工作得很好

但我嘗試了很多辦法的Class1Class2屬性綁定到的Class1TablenameIdClass2ColumnName字段作爲外鍵鏈接到Class2IdColumnName沒有成功。

正如你所看到的,我不想也IdClass2屬性放在Class1

爲了測試我嘗試沒有成功:

+0

後一些工程數據庫創建(即使AutomaticMigrationsEnabled屬性在配置設置不工作...),但Class1TableName沒有發現IdClass2ColumnName場,但class2_id一個 –

+0

其他信息:表中的每個class2條目都可以用於許多class1條目中,這是一個簡單的類型表 –

回答

0

解決,在代碼遷移問題,我忘了更新代碼遷移類等EF使用舊列名稱。

正確映射語法是

this.HasRequired(t => t.class2) 
    .WithRequiredDependent() 
    .Map(m => m.MapKey("IdClass2ColumnName "));