我有两个表,第一个有主键,但不是自动增量,另一个有主键,也有自动增量。我需要将第二个主键的值设置为第一个。
TABLE1 primary key TABLE2 primary key
zero or one ------------ one
当我向TABLE1插入新记录时,我有这种关系,TABLE2主键未插入TABLE1主键。值为0.我该如何解决这个问题?
提前致谢。
答案 0 :(得分:0)
不会自动设置,您必须将记录添加到 Table2 ,&在 Table1 的插入方法中自己设置对它的引用。
仅仅因为你们之间定义的关系并不意味着会自动添加 Table2 记录,也不意味着 Table1 FK。
或者我误解了你的要求?
编辑:
partial void PERSONELs_Inserting(PERSONEL entity)
{
entity.refPersonelID = entity.Personelyetki.Id;
}
如果 refPersonelID 只是一个整数属性,那么上面的代码应该可以正常工作。如果它不仅仅是一个普通的整数属性,那么我仍然不明白问题是什么。你得到什么错误?
我将举例说明如何设置导航属性,使用 Table1 & 表2 。我假设它们之间存在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;
}