在一个类型化的 DataSet 中,我有一个多对多关系表。为了便于更新,在添加新关系之前,我会删除旧的关系(可能与以前相同)。现在我想知道这种方法是否是安全的,或者我应该确保只删除那些真正被删除的(例如使用 LINQ),并且仅添加那些真正新增的。
在 SQL Server 中,关系表定义了唯一约束条件,两个外键组合成主键。
DataAdapter 更新 DataRow 的顺序(RowState 不等于 Unchanged)是否是可预测的?换句话说,当关键字已经存在时,
这是数据模型:
以下是代码的一部分(LbSymptomCodes 是 ASP.Net ListBox):
在 SQL Server 中,关系表定义了唯一约束条件,两个外键组合成主键。
DataAdapter 更新 DataRow 的顺序(RowState 不等于 Unchanged)是否是可预测的?换句话说,当关键字已经存在时,
DataAdapter.Update(DataTable)
是否会导致异常?这是数据模型:
![Datamodel](https://istack.dev59.com/lXU5X.webp)
Dim daTrelRmaSymptomCode As New ERPModel.dsRMATableAdapters.trelRMA_SymptomCodeTableAdapter
For Each oldTrelRmaSymptomCodeRow As ERPModel.dsRMA.trelRMA_SymptomCodeRow In thisRMA.GettrelRMA_SymptomCodeRows
oldTrelRmaSymptomCodeRow.Delete()
Next
For Each item As ListItem In LbSymptomCodes.Items
If item.Selected Then
Dim newTrelRmaSymptomCodeRow As ERPModel.dsRMA.trelRMA_SymptomCodeRow = Services.dsRMA.trelRMA_SymptomCode.NewtrelRMA_SymptomCodeRow
newTrelRmaSymptomCodeRow.fiRMA = Services.IdRma
newTrelRmaSymptomCodeRow.fiSymptomCode = CInt(item.Value)
Services.dsRMA.trelRMA_SymptomCode.AddtrelRMA_SymptomCodeRow(newTrelRmaSymptomCodeRow)
End If
Next
daTrelRmaSymptomCode.Update(Services.dsRMA.trelRMA_SymptomCode)
提前感谢您。