2017-08-07 2 views
0

Ich versuche, eine Tabellenspalte zu aktualisieren, aber es schlägt fehl. Hier ist der Code für die Aktualisierung auf meinem Controller:SqlException: Ungültiger Spaltenname (Entity Framework)

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" }); 
} 

Hier ist Modell von Terminen

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; } 
} 

Wenn ich zu aktualisieren versuchen, bekomme ich diesen Fehler:

Screen

Ich habe versucht, um den Spaltennamen Patient_Id1 zu finden, aber ich habe es nicht in meinem Projekt.

Reinigung und Wiederaufbau half nicht. Wie kann ich dieses Problem lösen?

+0

Ich nehme an, Sie verwenden DB zuerst Ansatz. Gehen Sie in Ihre EDMX-Datei und suchen Sie das Mapping für die Appointment-Klasse und für die Patientenklasse. Irgendwo in den Eigenschaften sehen Sie genau, welche Eigenschaften welchen Spalten zugeordnet sind und können diese aktualisieren. – MarioMucalo

+0

Sicher haben Sie Abbildung Problem in EDMX (durch Nummer Suffix angezeigt, die EF versuchen, doppelte Fremdschlüssel zu vermeiden) oder mit 2 verschiedenen FK für die gleiche PK (doppelt zugeordnet). Ich denke, Sie müssen 'ICollection' für' Patient' Klasse eingestellt haben, dann Modell von DB aktualisieren. –

Antwort

-1

Wenn es zuerst DB ist, sollten Sie die EDMX-Datei aktualisieren, indem Sie Patient_Id zur Tabelle Termin hinzufügen und dann die Lösung neu erstellen.

Wenn es Code zuerst ist, dann fügen Sie dieses db-Feld nur zur Termintabelle hinzu und führen Sie es dann aus.

-1

Stellen Sie sicher, dass db-Spalten richtig mit Ihrer edmx übereinstimmen. Normalerweise tritt dieser Fehler auf, wenn Ihre edmx und Ihre Datenbank nicht synchron sind.

Verwandte Themen