在数据库中插入多行,其中每行引用c#LINQ中的另一行

在数据库中插入多行,其中每行引用c#LINQ中的另一行,c#,linq-to-sql,parent-child,C#,Linq To Sql,Parent Child,我试图在数据库中存储树结构。出于示例的考虑,我使用一个表,其中每一行可以引用另一行 Id | Name | Parent ------------------ 1 | t1 | NULL 2 | t2 | 1 3 | t3 | 1 4 | t4 | 2 5 | t5 | 3 目前我填充表格的方式是分别提交每一行,然后再次查询以获取父ID。我认为必须有更好的方法来完成这项工作,只需更少的查询和全部查询 任何帮助都会很好 谢谢考虑将一个表值参数传递到存储过程中,让该过

我试图在数据库中存储树结构。出于示例的考虑,我使用一个表,其中每一行可以引用另一行

Id | Name | Parent
------------------
 1 | t1   | NULL
 2 | t2   | 1
 3 | t3   | 1
 4 | t4   | 2
 5 | t5   | 3
目前我填充表格的方式是分别提交每一行,然后再次查询以获取父ID。我认为必须有更好的方法来完成这项工作,只需更少的查询和全部查询

任何帮助都会很好


谢谢

考虑将一个表值参数传递到存储过程中,让该过程做一些闲聊的事情。LINQtoSQL可能无法处理此问题,但使用普通的旧ADO.Net来处理此问题的代码并不太糟糕


您是在使用LINQ To SQL还是LINQ To Entites使用存储过程实际上没有帮助。问题是,在我提交引用行之前,一行需要引用另一行。一旦您进入存储过程并拥有记录列表,除了减少查询调用之外,您还有各种选择。您可以暂时关闭“标识”和“批插入”,父级为NULL。您可以在插入后执行批处理更新。您可以使用递归CTE(公共表表达式)来计算id,然后只需执行一次插入。