2014-02-27 81 views
0

我是新的EF和我有一對一的關係的一些問題。 我收到以下消息,但我不明白爲什麼:EF代碼第一錯誤與關係

指定的包含路徑無效。實體類型 'ConsoleApplication1.Order'不聲明名爲'orderAdress'的導航屬性 。

我使用的代碼如下。希望有人能幫助我。

public class Order 
{ 
    public int OrderNo { get; set; } 
    public OrderAdress Adress { get; set; } 
    public int CustomerNo { get; set; } 
} 

public class OrderAdress 
{ 
    public int OrderNo { get; set; } 
    public Order Order { get; set; } 
    public string country { get; set; } 
} 

public class Context : DbContext 
{ 
    public DbSet<Order> Orders {get; set;} 
    public DbSet<OrderAdress> OrderAdresses { get; set; } 

    protected override void OnModelCreating(DbModelBuilder modelBuilder) 
    { 

     modelBuilder.Configurations.Add(new OrderMap()); 
     modelBuilder.Configurations.Add(new OrderAdressMap()); 

     modelBuilder.Entity<Order>() 
      .HasRequired(order => order.Adress) 
      .WithRequiredDependent(orderAdress => orderAdress.Order); 
    } 
} 

public class OrderMap : EntityTypeConfiguration<Order> 
{ 
    public OrderMap() 
    { 
     HasKey(t => t.OrderNo); 
     Property(t => t.CustomerNo); 
    } 
} 
public class OrderAdressMap : EntityTypeConfiguration<OrderAdress> 
{ 
    public OrderAdressMap() 
    { 
     HasKey(t => t.OrderNo); 
     Property(t => t.country); 
    } 
} 
+0

您是否在兩個表格之間添加了關係? – Daryl

+0

如果有人回答您的問題,請接受答案。在上面放一個綠色的複選標記。 – Dayan

回答

0

這是因爲您的地址表不包含任何主鍵.try添加主鍵到ypur故事。

+0

不客氣,也謝謝你TFFR ..這是我第一個接受的答案。再次感謝你 – Daryl

1

看來你缺少你EF designNavigation Property設置。

對於EF的一個很好的概述,並處理導航屬性:http://msdn.microsoft.com/en-us/data/jj713564.aspx

這裏是直接從該鏈接我張貼採取一個例子:

enter image description here

enter image description here

確保你在您的設計中正確設置了您的關係,並檢查您的課堂並與上面的鏈接中提供的示例進行比較。