我正在为LINQ to SQL CUD编写一个通用类。我LINQ to SQL定义对象身份的成员不能更改
“通用插入
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
的genric插入工作良好。
'通用更新
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'的值已更改。 定义对象身份的成员无法更改。 考虑添加一个具有新身份的新对象,并删除现有的对象。
我需要修改通用更新?谢谢。
它给出了这样的错误: 行未找到或更改。 描述:执行当前Web请求期间发生未处理的异常。请查看堆栈跟踪以获取有关该错误的更多信息以及源代码的位置。 异常详细信息:System.Data.Linq.ChangeConflictException:找不到或更改了行。 – 2009-11-29 10:49:59