Ce que je voudrais faire est le suivant. J'ai une seule table, Products, contenant une clé privée ProductID. Au lieu d'avoir ProductID SQL Server incrémentation automatique sur des inserts, je veux augmenter dans la méthode partielle DataContext « InsertProduct »:Incrémenter automatiquement une clé primaire dans la méthode partielle "Insert" de LINQ to SQL DataContext
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
Cependant, cela ne fonctionnera que lors de l'insertion de la première instance de produit. Lorsque vous tentez d'insérer une deuxième instance, l'identifiant récupéré est le même que pour la première,
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
Suis-je manque quelque chose évidente ici? InsertProduct n'est pas déclaré comme une méthode partielle dans le code ci-dessus