怎么你坚持一棵树结构的数据库表,自动增加Id使用ADO.NET 数据集,并起到桥梁作用

StackOverflow https://stackoverflow.com/questions/5263

  •  08-06-2019
  •  | 
  •  

我有一个自引用的作用表示树形结构

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

我用一个ADO.NET 数据表,并起到桥梁作用,以加载和保存价值观,以此表。这个工作,如果我仅仅创建儿童的现有行。如果我让一个儿童行,然后做一个孩子的,孩子,然后更新,临时ID值所产生的数据是进入ParentID列。我有以下有关的数据集:

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

而当我做出新的儿童行的数据表我叫SetParentRow方法

newRow.SetParentRow(parentRow)

是不是有什么特别的,我必须做得到的ID代传递归时,我呼吁更新上起到桥梁作用?

有帮助吗?

解决方案

我不知道ADO.net 特别是,但大多数中不会自动地插入ID的一个新的记录在一个关系。你将有助于2步骤的过程:

  1. 建立和保存父
  2. 建立和保存的孩子关系的父母

原因是,这是困难的中是因为你可能有圆形的相关性,它不会知道的对象,它需要创造一个ID第一次。一些中有足够的智慧想出这些关系在没有这样的圆形的依赖,但大多数不是。

其他提示

它不会让任何区别,如果你去

newRow.SetParentRow(parentRow, RoleTable.Relations("RoleToRole"))

我建议你加ForeignKeyConstraint,UpdateRule设置进行级联。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top