Я хотел бы сделать следующее. У меня есть одна таблица Products, содержащая закрытый ключ ProductID. Вместо автоматического увеличения ProductID SQL Server на вставках я хочу увеличить его в частичном методе DataContext «InsertProduct»:
Partial Public Class MyDataContext
Private Sub InsertProduct(ByVal instance As Product)
Dim id As Integer = Me.Products.Max(Function(p As Product) p.ProductID) + 1
instance.ProductID = id
Me.ExecuteDynamicInsert(instance)
End Sub
End Class
Однако это будет работать только при вставке первого экземпляра продукта. При попытке вставить второй экземпляр, полученный идентификатор совпадает с первым,
Using context As New MyDataContext
Dim product1 As New Product
context.Products.InsertOnSubmit(product1)
context.SubmitChanges() 'This works
Dim product2 As New Product
context.Products.InsertOnSubmit(product2)
context.SubmitChanges() 'DuplicateKeyException
End Using
Я что-то упускаю здесь очевидное?