我有一系列儿童用品,我不想删除,然后添加新的 我不关心性能,因为它不常用。
我该怎么办?我尝试了Order.items.clear()
和Order.Items.Remove(x)
,但都给了我例外
简化代码:
Dim db As New MainDataDataContext
dim o as Order = (From Order In db.Orders Where Order.OrderID = OrderID).FirstOrDefault
''//this will return "An attempt was made to remove a
''//relationship between a Order and a OrderItem.
''//However, one of the relationship's foreign keys
''//(Order.OrderID) cannot be set to null." exception
o.Items.Clear()
''//and this will return "EntitySet was modified during enumeration." exception
For Each oItem As OrderItem In o.Items
o.items.Remove(oItem)
Next
For Each item As ListViewItem In listViewOrderItems.Items
If item.ItemType = ListViewItemType.DataItem Then
Dim oItem As New OrderItem
oItem.OrderID = OrderID
oItem.Product = CType(item.FindControl("txtProduct"), TextBox).Text
oItem.Quantity = CType(item.FindControl("txtQuantity"), TextBox).Text
Order.items.Add(oItem)
End If
Next
db.SubmitChanges()
答案 0 :(得分:15)
只要您删除所有项目,您也可以使用
db.OrderItems.DeleteAllOnSubmit(o.Items);
答案 1 :(得分:3)
没关系,我找到了解决方案(但不知道它是否是最好的)
For Each oItem As OrderItem In o.Items
db.OrderItems.DeleteOnSubmit(oItem)
Next