2012-11-21 16 views
0

我有兩個表,我想用EntityFramework查詢,使用主表,這是第二個表用於存儲輔助數據,我希望我可以做一個左連接,但我不能這樣做,這裏是元素:EntityFramework5代碼優先,如何配置不同列名的表拆分關係?

public class TableA 
{ 
    public int Id {get; set;} 
    public string Value {get;} set 
} 

public class OptionalDataTableB 
{ 
    public int OptionalDataTableBId {get; set;} 
    public string OtherValue {get; set;} 
} 

這裏的映射類

public class TableAMap: EntityTypeConfiguration<TableA> 
{ 
    public TableAMap() 
    { 
     this.HasKey (e => e.Id); 
     this.Property (e => e.Id) 
        . IsRequired() 
      .HasDatabaseGeneratedOption(System.ComponentModel.DataAnnotations.Schema.DatabaseGeneratedOption.Identity); 

    } 
} 

public class OptionalDataTableBMap: EntityTypeConfiguration<OptionalDataTableB> 
{ 
    public OptionalDataTableB() 
    { 
     this.HasKey (e => e.OptionalDataTableBId); 
     this.Property (e => e.OptionalDataTableBId) 
      . IsRequired() 
    } 
} 

我想設置了的DbContext

public class MyDbContext: DbContext 
{ 
    protected override void OnModelCreating (DbModelBuilder ModelBuilder) 
    { 
     modelBuilder.Configurations.Add (new Mapping.TableAMap()); 
     modelBuilder.Configurations.Add (new Mapping.OptionalDataTableBMap()); 
    } 
} 

如何℃的關係配置映射會產生這種請求嗎? :

select * 
from TableA 
    left join OptionalDataTableB On TableA.Id = OptionalDataTableB.OptionalDataTableBId 

回答

0

從MSDN下面應該回答你的問題:http://msdn.microsoft.com/en-us/data/hh134698.aspx

+1

請不要剛落一個環節,但簡單總結一下爲什麼它適用。鏈接快速中斷。但是,這個鏈接並沒有涵蓋OP的問題。 –

+0

謝謝你的回答,但不是我想要做的是一個關係「一對一可選」 – mchouteau