gpt4 book ai didi

.net - 如何使用 ADO.NET 数据集和 DataAdapter 将树结构保存到具有自动递增 ID 的数据库表中

转载 作者:太空狗 更新时间:2023-10-30 01:46:11 25 4
gpt4 key购买 nike

我有一个代表树结构的自引用角色表

ID [INT] AUTO INCREMENT
Name [VARCHAR]
ParentID [INT]

我正在使用 ADO.NET DataTable 和 DataAdapter 加载值并将值保存到该表。如果我只创建现有行的子项,这将起作用。如果我制作一个子行,然后制作那个 child 的 child ,然后更新,DataTable 生成的临时 ID 值将进入 ParentID 列。我有以下数据关系集:

dataset.Relations.Add(New DataRelation("RoleToRole",RoleTable.Columns("ID"), RoleTable.Columns("ParentID")))

当我在 DataTable 中创建新的子行时,我调用 SetParentRow 方法

newRow.SetParentRow(parentRow)

当我在 DataAdapter 上调用 Update 时,我是否需要做一些特别的事情才能使 ID 生成递归传播?

最佳答案

我不是特别了解 ADO.net,但大多数 ORM 不会自动在关系中插入新记录的 ID。您必须采用两步流程:

  1. 构建并保存父节点
  2. 建立并保存与 parent 有关系的 child

这对 ORM 来说很困难的原因是因为您可能有循环依赖,并且它不知道首先需要为哪个对象创建 ID。一些 ORM 足够聪明,可以找出那些不存在此类循环依赖关系的关系,但大多数都不是。

关于.net - 如何使用 ADO.NET 数据集和 DataAdapter 将树结构保存到具有自动递增 ID 的数据库表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5263/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com