2017-08-07 194 views
0

我嘗試更新表列,但它失敗。下面是我的控制器上更新代碼:SqlException:無效的列名(實體框架)

public ActionResult AddDoctorsAppointment(string Start, string End, string Title, int? idPatient) 
{ 
    Appointment appointmentDoc = new Appointment() 
    { 
     Start_appointment = Start, 
     End_appointment = End, 
     Title = Title, 
     Type_of_appointment = "Doctors", 
     Patient_Id = idPatient 
    }; 
    db.Appointments.Add(appointmentDoc); 
    db.SaveChanges(); 
    return Json(new { Result = "Success", Message = "Saved Successfully" }); 
} 

這裏被任命

public partial class Appointment 
{ 
    public int Id { get; set; } 
    public string Start_appointment { get; set; } 
    public string End_appointment { get; set; } 
    public string Title { get; set; } 
    public string Type_of_appointment { get; set; } 
    public Nullable<int> Patient_Id { get; set; } 

    public virtual Patient Patient { get; set; } 
} 

的模型。當我嘗試更新,我得到這個錯誤:

Screen

我試着找到列名Patient_Id1,但我沒有在我的項目中。

清潔和重建沒有幫助。我如何解決這個問題?

+0

我假設你使用的是DB第一種方法。進入你的.edmx文件並找到Appointment類和Patient類的映射。在屬性的某個地方,您將看到哪些屬性被映射到哪些列,並且能夠更新此屬性。 – MarioMucalo

+0

當然,您在EDMX中有映射問題(通過EF試圖避免重複外鍵的數字後綴顯示),或者對於相同的PK(映射兩次)具有2個不同的FK。我認爲你需要爲'Patient'類設置'ICollection',然後從DB更新模型。 –

回答

-1

如果它是數據庫優先,那麼您應該通過將Patient_Id添加到表約會然後重新構建解決方案來更新EDMX文件。

如果它是代碼第一,然後只將該數據庫字段添加到約會表,然後運行它。

-1

確保db列與您的edmx正確匹配。通常當你的edmx和數據庫不同步時會發生這個錯誤

相關問題