code_junkie

Auto-increment a primary key in the LINQ to SQL DataContext “Insert” partial method

Nov 12th, 2011
90
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.73 KB | None | 0 0
  1. Partial Public Class MyDataContext
  2.  
  3. Private Sub InsertProduct(ByVal instance As Product)
  4.  
  5. Dim id As Integer = Me.Products.Max(Function(p As Product) p.ProductID) + 1
  6. instance.ProductID = id
  7.  
  8. Me.ExecuteDynamicInsert(instance)
  9.  
  10. End Sub
  11.  
  12. End Class
  13.  
  14. Using context As New MyDataContext
  15.  
  16. Dim product1 As New Product
  17. context.Products.InsertOnSubmit(product1)
  18. context.SubmitChanges() 'This works
  19.  
  20. Dim product2 As New Product
  21. context.Products.InsertOnSubmit(product2)
  22. context.SubmitChanges() 'DuplicateKeyException
  23.  
  24. End Using
  25.  
  26. Private Sub InsertProduct(ByVal instance As Product)
  27.  
  28. Dim id As Guid = Guid.NewGuid
  29. instance.ProductID = id
  30.  
  31. Me.ExecuteDynamicInsert(instance)
  32.  
  33. End Sub
Add Comment
Please, Sign In to add comment