C# で LINQ レコードを更新しようとしていますが、SubmitChanges
を呼び出すとエラーがスローされます。予定のスペルミスがあることは知っていますが、誤ってそのようにコーディングしてしまいました。与えられた例外/エラーは次のとおりです。
{"タイプ「予定」のオブジェクトのメンバー「Appiontment」の値が変更されました。\r\nオブジェクトの ID を定義するメンバーは変更できません。\r\n代わりに、新しい ID を持つ新しいオブジェクトを追加し、既存のものを削除することを検討してください。 ."} 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;
}