0

我正在使用实体框架 4,我收到此错误:

无法插入外键值,因为对应的主键值不存在。[ 外键约束名称 = FK_Table1_Table2_ColumnId ]

Table1在哪里DBContext

public class Database1DB : DbContext
{
   public DbSet<Table1> TableOne { get; set; }
}

并且Table 2在另一个DBContext

public class Database2DB : DbContext
{
   public DbSet<Table2> TabeTwo {get;set;}
}

Table 1Table2有一个对' 列的外键引用,如下所示:

public class Table1
{
   [Key]
   public int Id {get;set;}

   [ForeignKey("Table2")
   public int ColumnId {get;set;}

   public virtual Table2 Table2 {get;set;}
}

public class Table2
{
   [Key]
   public int Id {get;set;}
}
4

1 回答 1

3

您不能对在不同上下文中定义的实体之间的关系进行建模。相关实体必须在相同的上下文中才能使其工作。在您的情况下,您可以简单地使用:

public class Table1
{
   [Key]
   public int Id {get;set;}
   public int ColumnId {get;set;}
}

public class Table2
{
   [Key]
   public int Id {get;set;}
}

而且您将不得不手动处理关系。

于 2012-08-06T17:33:49.413 回答