gpt4 book ai didi

vb.net - LINQ to SQL 定义对象标识的成员无法更改

转载 作者:行者123 更新时间:2023-12-02 09:59:33 25 4
gpt4 key购买 nike

我正在为 LINQ to SQL CUD 编写通用。我

'通用插入

Public Shared Sub Add(Of T As Class)(ByVal entity As T)

Using db As New APIUDataContext()

db.GetTable(Of T)().InsertOnSubmit(entity)
db.SubmitChanges()

End Using

通用插入运行良好。

'一般更新

Public Shared Sub Update(Of T As Class)(ByVal oldEntity As T, ByVal newEntity As T)

Dim db As New DemoDataContext()

db.GetTable(Of T)().Attach(newEntity, oldEntity)
db.SubmitChanges()

End Sub

'使用通用更新

    Dim oldEntity As New TestAuthor
oldEntity.Id = 4
oldEntity.FirstName = "James"

Dim newEntity As New TestAuthor
newEntity.FirstName = TextBox1.Text
newEntity.LastName = TextBox2.Text

GenericCUD.Update(oldEntity, newEntity)

来自通用更新的错误消息。

“TestAuthor”类型的对象的成员“Id”的值已更改。定义对象身份的成员不能更改。考虑添加具有新标识的新对象并删除现有对象。

我需要修改通用更新什么?谢谢。

最佳答案

您的 newEntity 对象的 Id 不是 4,而是 0,因此这两个对象不被视为对应于同一数据库行。

Dim newEntity As New TestAuthor
newEntity.Id = oldEntity.Id
newEntity.FirstName = TextBox1.Text
newEntity.LastName = TextBox2.Text

关于vb.net - LINQ to SQL 定义对象标识的成员无法更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1815137/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com