Bonjour,
Pour un développement en asp.net vb.net, je dois faire une copie d'une entité ( via entity framework 4.0) afin de l’insérer dans une base de données.
Voici mon code déjà fait
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
 
           Dim test As New Produit
           Using entites As IRepository(Of Produit) = ModelFactory(Of Produit).CreateManager
            //je recupère la donnée
            Dim read = entites.Read(myId)
            //je clone l'enregistrement
            test = Clone(Of Produit)(read)
            //je  détache du modèle
            entites.Detach(read)            
            test.EntityKey = Nothing
            test.ID = Nothing
           //je l'insert et la sauve
            entites.Create(test)
            entites.Save()
        End Using
    End Sub
    //fonction qui serialise et prepare le clonde
    Public Shared Function Clone(Of t)(source As IEntity) As t
        Dim obj = New DataContractSerializer(GetType(t))
        Using stream = New System.IO.MemoryStream()
            obj.WriteObject(stream, source)
            stream.Seek(0, System.IO.SeekOrigin.Begin)
            Return DirectCast(obj.ReadObject(stream), t)
        End Using
    End Function
et j'obtiens l'erreur suivante :
Un objet ayant la même clé existe déjà dans ObjectStateManager. ObjectStateManager ne peut pas assurer le suivi de plusieurs objets ayant la même clé.


Avez vous une idée?

Merci de vos réponses.

Cdlt