0

我正在尝试更新 C# 中的 LINQ 记录,但在SubmitChanges调用时会引发错误。我知道约会有时会出现拼写错误,但我不小心这样编码。给出的异常/错误是:

{"类型为“约会”的对象的成员“约会”的值已更改。\r\n无法更改定义对象身份的成员。\r\n请考虑添加具有新身份的新对象并删除现有对象."} System.Exception {System.InvalidOperationException}

我不允许删除旧记录并添加新记录。我的代码如下:

public bool AppointmentReschedule(string patientFirstName, string patientLastName, string doctorFirstName, string doctorLastName, DateTime newTime)
{
   LINQClassesDataContext dc = new LINQClassesDataContext();

   try
   {
      Appointment a = getAppointment(patientFirstName, patientLastName, doctorFirstName, doctorLastName);
      if (a == null) throw new FaultException("Unable to retrieve appointment data");
      var appointments = dc.Appointments;

      foreach (Appointment b in appointments)
      {
         if (b.Appiontment == a.Appiontment && b.HealthInsuranceNo == a.HealthInsuranceNo && b.MedicalRegistrationNo == a.MedicalRegistrationNo)
         {
            b.Appiontment = newTime;
         }
      }
      dc.SubmitChanges();
   }

   catch (Exception ex)
   {
      throw new FaultException("Unable to update data");
   }
   return true;
}
4

1 回答 1

2

Appiontment列似乎是表中主键的一部分。我建议在您的表中引入一个主键,或者是一个Guid(uniqueidentifier在 SQL 中),您可以在每次插入期间手动添加它,或者一个int,您可以将其定义为标识列。

于 2013-10-16T21:10:58.857 回答