2014-02-27 80 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

确保你在您的设计中正确设置了您的关系,并检查您的课堂并与上面的链接中提供的示例进行比较。