Daten auf Entity Framework klonen

entity-framework

Frage

Ich erstelle eine Software, mit der Benutzer neue Produkte basierend auf älteren Produkten erstellen können.

Jetzt muss ich mit Entity Framework Kopieren / Klonen durchführen. Zuerst begann ich so zu schreiben:

foreach(sourcedata1 in table1)
{
   ... create new table
   ... copy data
   ... create Guid
   ... add
   foreach(sourcedata2 in table2)
   {
       ... create new table
       ... copy data
       ... create Guid
       ... add       

       ... and so on
   }
}

Das Problem ist, dass dies kein guter Weg ist. Gibt es eine einfache Möglichkeit zum Klonen von Informationen (mit Ausnahme von Guid, das für neue Zeilen generiert werden muss) oder sollte ich alles manuell kopieren?

Andere Lösung

Sie können auch EmitMapper oder AutoMapper verwenden, um die Eigenschaften zu kopieren.

Akzeptierte Antwort

Bei der direkten Serialisierung können Sie Folgendes tun:

http://social.msdn.microsoft.com/forums/en-US/adodotnetentityframework/thread/a967b44b-c85c-4afd-a499-f6ff604e2139/

Mit Reflection, aber mit viel mehr Code können Sie Folgendes tun: http://msmvps.com/blogs/matthieu/archive/2008/05/31/entity-cloner.aspx


Beliebte Antwort

Eine Entität in Entity Framework klonen Sie einfach die Einheit aus dem abnehmen konnte DataContext und dann erneut hinzufügen , um es in die EntityCollection .

context.Detach(entity);
entityCollection.Add(entity);

Update für EF6 + (von Kommentaren)

context.Entry(entity).State = EntityState.Detached;
entity.id = 0;
entity.property = value;
context.Entry(entity).State = EntityState.Added;
context.SaveChanges();


Lizenziert unter: CC-BY-SA with attribution
Nicht verbunden mit Stack Overflow
Ist diese KB legal? Ja, lerne warum
Lizenziert unter: CC-BY-SA with attribution
Nicht verbunden mit Stack Overflow
Ist diese KB legal? Ja, lerne warum