Ich habe vier Tabellen abgerufen werden:SQL-Abfrage verschiedene Datensätze aus vier Tabellen
- Department (DepartmentId)
- Platz (courseid, DepartmentId)
- CourseInstructor (courseid, InstructorId)
- Instructor (InstructorId, Vorname, Nachname, HireDate)
Ich arbeite an asp.net mvc. Der Instructor Modell ist -
public class Instructor
{
public int InstructorId {get; set;}
public string FristName {get; set;}
public string LastName {get; set;}
public DateTime HireDate {get; set;}
public string FullName
{
get
{
return FirstName + " " + LastName;
}
}
Jetzt muss ich basierend auf einem gegebenen DepartmentId alle verschiedene Instructor Aufzeichnung einer Abteilung finden.
Ich schrieb die folgende SQL-Abfrage, aber es sagt -
Mehrdeutige Spaltenname
string query = "select InstructorId, MAX(FirstName), MAX(LastName) from Instructor "
+ "left join CourseInstructor on CourseInstructor.InstructorId = Instructor.InstructorId "
+ "left join Course on Course.CourseId = CourseInstructor.CourseId "
+ "left join Department on Department.DepartmentId=Course.DepartmentId "
+ "where [email protected] "
+ "group by Instructor.InstructorId";
IEnumarable<Instructor> Instructors = db.Database.SqlQuery<Instructor>(query, id);
Hier id 'InstructorId' ist die gebotene DepartmentId. Wie kann ich das lösen?
Verwenden qualifizierte Spaltennamen (d.h.immer mit einem Tabellen-Alias) und du wirst * nie * dieses prbolem haben. –
Es wäre besser gewesen, eine neue Frage zu stellen, als die alte zu bearbeiten. Die Antworten auf die ursprüngliche Frage ergeben keinen Sinn mehr. Dies wird diejenigen verwirren, die dir folgen. –