2009-03-11 16 views
7

में बाल आइटम को निकालने के लिए कैसे हटाएं और मेरे पास एक तालिका के बाल आइटमों की एक सेरी है, जिसे मैं हटाना नहीं चाहता और फिर नए जोड़ना चाहता हूं।
मुझे प्रदर्शन के बारे में परवाह नहीं है, क्योंकि यह एक लगातार संचालन है।LINQ से SQL

मुझे यह कैसे करना चाहिए? मैं 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() 

उत्तर

15

जब तक आप सभी आइटमों को हटा रहे हैं, साथ ही

db.OrderItems.DeleteAllOnSubmit(o.Items); 
का उपयोग कर रहे हैं
3

कोई बात नहीं, मैं समाधान (लेकिन अगर यह सबसे अच्छा है पता नहीं है)

For Each oItem As OrderItem In o.Items 
    db.OrderItems.DeleteOnSubmit(oItem) 
Next