Je suis en train de dupliquer currentAppointment au rendez-vous. Mon problème est que currentAppointment a un GUID. Lorsque j'essaie de créer un nouveau rendez-vous en double, j'obtiens l'erreur suivante. 'La propriété' AppID 'fait partie des informations clés de l'objet et ne peut pas être modifiée. '. Cela a tout à fait du sens pourquoi je reçois cette erreur et je sais que je peux la contourner en allant champ par champ et les faire correspondre (32 champs) mais je voudrais savoir s'il y a un moyen de donner ' rendez-vous 'un nouveau guid sans aller champ par champ.informations clés de l'objet et ne peut pas être modifié
Appointment currentAppointment = db.Appointments.Find(id);
Appointment appointment = currentAppointment;
appointment.AppID = Guid.NewGuid(); (where I get the error since I already have a guid from currentAppointment but would like appointment to have a new one.)
appointment.AgentID = 1;
appointment.StatusID = 13;
db.Appointments.Add(appointment);
Vous devez lire (https [types de référence] (https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/reference-types) (et probablement [types de valeur] : //docs.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/value-types) aussi). Vous obtenez l'erreur parce que 'rendez-vous' est juste un pointeur vers le même objet représenté par' currentAppointment', si vous en changez un, vous changez l'autre. Qu'est-ce que 'db'? Est-ce Entity Framework ou autre chose? – Equalsk
Entity Framework –
Vous pourriez envisager d'utiliser 'AsNoTracking' pour accomplir ceci, peut-être. https://stackoverflow.com/questions/15308747/entity-framework-5-deep-copy-clone-of-an-entity –