0

我有两个表,第一个有一个主键但它不是自动增量,另一个有一个主键并且也是自动增量。我需要将第二个主键的值设置为第一个。

TABLE1 primary key         TABLE2 primary key
zero or one   ------------ one

当我向 TABLE1 插入新记录时,我有这种关系,TABLE2 主键没有插入到 TABLE1 主键。值为 0。我该如何解决这个问题?

提前致谢。

4

1 回答 1

0

它不会自动设置,您必须在Table1Inserting方法中向Table2添加一条记录,并自己设置对它的引用。

仅仅因为您定义了它们之间的关系并不意味着Table2记录将被自动添加,Table1 FK 也不意味着。

还是我误解了你的要求?

编辑:

partial void PERSONELs_Inserting(PERSONEL entity) 
{ 
    entity.refPersonelID = entity.Personelyetki.Id; 
}

如果refPersonelID只是一个整数属性,那么上面的代码应该可以正常工作。如果它不仅仅是一个普通的整数属性,那么我仍然不明白问题是什么。你遇到了什么错误?

我将举一个例子,说明如何使用Table1Table2设置导航属性。我假设它们之间存在 1-Many 关系,因此Table1有一个名为Table2s的导航集合属性,而Table2有一个名为Table1的导航属性。我不完全理解您实际上要做什么,但下面的示例代码说明了设置导航属性的正确方法。

要设置 Table2 的 Table1 属性,您可以这样做:

private void UpdateTable1
{
    //retrieve the Table1 entity that corresponds to the required integer ID value (someIdValue)
    var table = this.Details.DataWorkspace.ApplicationData.Table1Set.SingleOrDefault(someIdValue);

    //assign the retrieved entity to the navigation property
    this.Table1 = table;

    //you CAN'T do this
    this.Tbale1.ID = someIdValue;
}
于 2013-02-14T12:56:11.960 回答