【发布时间】:2010-09-21 11:21:36
【问题描述】:
我想做的是以下。我有一个表 Products,其中包含一个私钥 ProductID。我不想在插入时让 SQL Server 自动增加 ProductID,而是想在 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
但是,这仅在插入第一个 Product 实例时才有效。尝试插入第二个实例时,检索到的 id 与第一个相同,
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
我在这里遗漏了什么明显的东西吗?
【问题讨论】:
标签: linq-to-sql