J'ai une méthode de mise à jour dans ma couche de données telles ceci:Comment mettre à jour les données avec LINQ par méthode Attach
public clacc datalayerSec_User
private objUIData as new UIData
Public Function Update(ByVal objUser As SEC_USER) As Boolean
Try
objUIData.SEC_USERs.Attach(objUser)
objUIData.Refresh(RefreshMode.KeepCurrentValues, objUser)
objUIData.SubmitChanges(ConflictMode.ContinueOnConflict)
Return True
Catch ex As Exception
Throw ex
End Try
End Function
end class
Et j'écris ce code pour mettre à jour mes données:
Dim tmpUser As New UI_Class.BAL.Security.cls_SEC_USER
Dim tblUser = tmpUser.GetAll.SingleOrDefault(Function(x) x.DS_OPENID = pOpenID)
tblUser.DT_LAST_LOGIN = DateTime.Now
tmpUser.Update(tblUser)
Quand je exécutez-le, j'ai ce message d'erreur: Impossible de joindre une entité qui existe déjà.
Comment peut-il être fixé?
Cette erreur se produit également lorsque vous essayez de joindre un objet créé à partir d'un DataContext à un autre. – leppie
Je mets objUIData maintenant;) – mavera
Tant que datalayerSec_User est toujours là, vous n'aurez pas besoin d'attacher. Les mises à jour auront lieu si vous avez activé le suivi des modifications (par défaut je pense) et tout ce que vous avez à faire est d'appeler les modifications de soumission. –