Я пишу универсальный для LINQ to SQL CUD. I
'Универсальная вставка
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)
Сообщение об ошибке из общего обновления.
Изменено значение элемента 'Id' объекта типа 'TestAuthor'.
Член, определяющий идентичность объекта, не может быть изменен.
Попробуйте добавить новый объект с новым идентификатором и удалить вместо него существующий.
Что мне нужно для изменения общего обновления? Спасибо.