怎么你坚持一棵树结构的数据库表,自动增加Id使用ADO.NET 数据集,并起到桥梁作用
题
我有一个自引用的作用表示树形结构
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步骤的过程:
- 建立和保存父
- 建立和保存的孩子关系的父母
原因是,这是困难的中是因为你可能有圆形的相关性,它不会知道的对象,它需要创造一个ID第一次。一些中有足够的智慧想出这些关系在没有这样的圆形的依赖,但大多数不是。
其他提示
它不会让任何区别,如果你去
newRow.SetParentRow(parentRow, RoleTable.Relations("RoleToRole"))
我建议你加ForeignKeyConstraint,UpdateRule设置进行级联。
不隶属于 StackOverflow