2011-09-26 27 views
0

我裝盤做一個映射到id爲「外來的」一對一關係一個關係,我不能更改數據庫Ef中的代碼第一個ID爲外國

這些都是表

CUTOMER

  • INT客戶編號
  • 字符串名稱

爲CustomerDetail

  • INT客戶編號
  • 串詳細

實體Splittitng不工作對我來說,因爲我需要一個左outter加入。 任何想法?

在此先感謝, 並對我的英語感到抱歉。

回答

1

您可以在這裏使用共享主鍵映射。

public class Customer 
{ 
    public int CustomerId { get; set; } 

    public string Name { get; set; } 

    public virtual CustomerDetail CustomerDetail { get; set; } 
} 

public class CustomerDetail 
{ 
    public int CustomerId { get; set; } 

    public string Details { get; set; } 

    public virtual Customer Customer { get; set; } 
} 

public class MyContext : DbContext 
{ 
    protected override void OnModelCreating(DbModelBuilder modelBuilder) 
    { 
     modelBuilder.Entity<CustomerDetail>().HasKey(d => d.CustomerId); 

     modelBuilder.Entity<Customer>().HasOptional(c => c.CustomerDetail) 
      .WithRequired(d => d.Customer); 
    } 
} 
+0

它的工作原理......但增加了兩個outter加入到查詢:S –

+0

@Alfredo你不能指望EF產生最有效的查詢。但是查詢優化器可能能夠優化它。如果對你有幫助,你可以接受答案。 – Eranga