Как использовать класс Linq-to-SQL, как я могу сделать простую копию сущности и сохранить ее?
У моего объекта есть идентификатор уникального идентификатора, который автоматически генерируется в SQL Server.
Мне не нужен "глубокий клон".
Я пытался использовать некоторые методы клонирования, которые существуют , но я не мог понять, как получить все сериализованное, что нужно было сериализовать (застрял на DataContext
, не сериализуемом).
Могу ли я просто получить объект, отсоединить его от DataContext
, обнулить уникальный идентификатор и InsertOnSubmit
в новом DataContext
? Если да, то как бы я это сделал?
Код VB.net предпочтителен, но не обязателен.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
UPDATE:
Public Shared Function ReIssue(RequestID As Guid) As Guid
Dim req As Request
Dim new_req As Request
Using dc1 As New MBDataContext()
req = (From r In dc1.Requests Where r.ID = RequestID).Single()
End Using
new_req = req
new_req.ID = Guid.Empty
new_req.CreateDate = Nothing
Using dc2 As New MBDataContext()
dc2.Requests.InsertOnSubmit(new_req)
dc2.SubmitChanges()
End Using
End Function
Я получаю ошибку: Была предпринята попытка присоединить или добавить объект, который не является новым, возможно, был загружен из другого DataContext. Это не поддерживается.
в этой строке: dc2.Requests.InsertOnSubmit (new_req)