我想更新存盤在物體框架中的類中的自定義物件串列,但我遇到了這個錯誤:物體型別 list`1 is not part of the model for current context。我已經觀察到問題是什么,但我沒有足夠的經驗來解決這個問題。請參閱下面的代碼以更好地理解手頭的問題。
public class Appointment
{
public int AppointmentID { get; set; }
public int PetID { get; set; }
public int DoctorID { get; set; }
public DateTime AppointmentDate { get; set; }
public Status AppointmentStatus { get; set; }
public virtual List<ObservedPetIssue> ObservedPetIssueID { get; set; }
public string Reason { get; set; }
public virtual List<PrescribedMedicine> Prescription { get; set; }
public virtual List<DiagnosedSymptom> DiagnosedSymptomID { get; set; }
public virtual Vital VitalID { get; set; }
public virtual List<PrescribedTest> PrescribedTestID { get; set; }
public virtual List<Recommendation> RecommendationID { get; set; }
}
這是具有其他類串列和一個具有單個類(Vital)的屬性的類。
這是觀察:
1)如果我編輯任何欄位,如 PetID、DoctorID 或 AppointmentStatus 并寫入db.Entry(appt).CurrentValues.SetValues(editedAppointment);更改已保存
如果我編輯 VitalID 中的任何欄位并寫入
db.Entry(appt.VitalID).CurrentValues.SetValues(editedAppointment.VitalID);更改已保存如果我將任何 PrescribedMedicine 添加到 Prescription 串列,或修改現有 PrescribedMedicine 或根本不修改任何內容并寫入
db.Entry(appt.PrescribedTestID).CurrentValues.SetValues(editedAppointment.PrescribedTestID);并拋出錯誤說明:物體型別串列`1 不是當前背景關系模型的一部分
我試過 db.Entry(appt.Prescription).State = EntityState.Modified,仍然沒有成功。
uj5u.com熱心網友回復:
你做的和那個類似db.Entry(new List<PrescribedTest>())。這失敗了,因為 db 背景關系不知道物體型別List<PrescribedTest>。
之所以可以使用,VitalID是因為它與db.Entry(new Vital())成功相似,因為 db 背景關系知道物體型別Vital。
如果你想更新一個完整的物體集合,你可以:
context.Entry(appointment).Collection(a => a.PrescribedTestID).CurrentValue = editedAppointment.PrescribedTestID;
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/531195.html
標籤:C#。网实体框架
