我想将currentAppointment复制到约会。我的问题是currentAppointment有一个GUID。当我尝试创建新的重复约会时,出现以下错误。 '属性'AppID'是对象关键信息的一部分,不能修改。 '。对象的关键信息,无法修改
这完全有道理,为什么我得到这个错误,我知道我可以绕过它逐场下来匹配起来(32场),但我想知道是否有办法给'任命'一个新的指导,而不是逐场进行。
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);
您需要阅读[参考类型](https://docs.microsoft.com/zh-cn/dotnet/csharp/language-reference/keywords/reference-types)(可能还有[值类型](https) ://docs.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/value-types))。你会得到这个错误,因为'appointment'只是一个指向由'currentAppointment'表示的同一个对象的指针,如果你改变了另一个对象。什么是数据库?它是实体框架还是其他? – Equalsk
实体框架 –
您可以考虑使用'AsNoTracking'来完成此操作。 https://stackoverflow.com/questions/15308747/entity-framework-5-deep-copy-clone-of-an-entity –