Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 自引用表LINQ_Asp.net_Linq_Linq To Sql - Fatal编程技术网

Asp.net 自引用表LINQ

Asp.net 自引用表LINQ,asp.net,linq,linq-to-sql,Asp.net,Linq,Linq To Sql,您好,我有一个表,它有一个id字段和一个parentid字段。这两个字段都是必需的,因此不能将null插入parentid列以将其标记为层次结构的根。我对linq有一个问题,当我创建一个新根时,我必须输入一个伪parentid,直到我知道新根的id,然后我必须用正确的id更新parentid字段并再次保存它。这似乎很愚蠢,但我还没有找到更好的方法来实现这一点 TableWithHeirachy xobj = new TableWithHeirachy(); xobj.property1 = "t

您好,我有一个表,它有一个id字段和一个parentid字段。这两个字段都是必需的,因此不能将null插入parentid列以将其标记为层次结构的根。我对linq有一个问题,当我创建一个新根时,我必须输入一个伪parentid,直到我知道新根的id,然后我必须用正确的id更新parentid字段并再次保存它。这似乎很愚蠢,但我还没有找到更好的方法来实现这一点

TableWithHeirachy xobj = new TableWithHeirachy();
xobj.property1 = "test";
db.TableWithHeirachy.InsertOnSubmit(xobj);
db.SubmitChanges();
xobj.parentid = xobj.id;
db.SubmitChanges();

这似乎真的很糟糕。请告诉我有更好的办法

在插入完成之前,SQL语句不会知道要插入的行的未来ID

所以,要么像现在一样继续,要么使用特殊值来指示根记录null,-1,等等