0
執行常規的SQL查詢我試圖通過執行長的SQL查詢:顯示在下方爲您提供方便無法通過實體框架
IEnumerable<erequest> blah = db.Database.SqlQuery<erequest>().ToList();
查詢。當我exectute查詢,我發現了以下錯誤:
The data reader is incompatible with the specified '
enrollDBModel.erequest
'. A member of the type, 'er_student_id
', does not have a corresponding column in the data reader with the same name.
然而,er_student_id
meber並在erequest.cs Context.tt類
public int er_student_id { get; set; }
存在(也看帖子的底部完整的類)
查詢:
SELECT erequests.er_id,
CASE
WHEN current_subject_enrollment.count >= subjects.sj_max_enrollment
THEN 0
WHEN already_passed.count >= 1 THEN 0
WHEN is_already_enrolled.count >= 1 THEN 0
WHEN failure_times.count >= 3 THEN 0
WHEN current_student_enrollment.count >= 4 THEN 0
ELSE 1
END AS can_enroll,
students.st_first_name,
students.st_mid_name,
students.st_last_name,
students.st_student_id,
subjects.sj_subject_name,
subjects.sj_availability,
subjects.sj_max_enrollment,
erequests.er_subject_id,
erequests.er_reason,
erequests.er_status
FROM erequests
RIGHT JOIN students
ON erequests.er_student_id = students.st_student_id
RIGHT JOIN subjects
ON erequests.er_subject_id = subjects.sj_subject_id
AND subjects.sj_availability = 1
LEFT OUTER JOIN (SELECT Count(em_student_id) AS count,
em_subject_id
FROM enrollment
WHERE (em_enrolled = 1)
GROUP BY em_subject_id) AS current_subject_enrollment
ON erequests.er_subject_id =
current_subject_enrollment.em_subject_id
LEFT OUTER JOIN (SELECT Count(em_student_id) AS count,
em_student_id,
em_subject_id
FROM enrollment
WHERE (em_enrolled = 1)
GROUP BY em_student_id,
em_subject_id) AS is_already_enrolled
ON erequests.er_student_id =
is_already_enrolled.em_student_id
AND erequests.er_subject_id =
is_already_enrolled.em_subject_id
LEFT OUTER JOIN (SELECT Count(em_student_id) AS count,
em_student_id,
em_subject_id
FROM enrollment
WHERE (em_enrolled = 0
AND em_result >= 50)
GROUP BY em_student_id,
em_subject_id) AS already_passed
ON erequests.er_subject_id = already_passed.em_subject_id
AND erequests.er_subject_id =
already_passed.em_subject_id
LEFT OUTER JOIN (SELECT Count(em_student_id) AS count,
em_student_id,
em_subject_id
FROM enrollment
WHERE (em_enrolled = 0
AND em_result < 50)
GROUP BY em_student_id,
em_subject_id) AS failure_times
ON erequests.er_subject_id = failure_times.em_subject_id
AND erequests.er_subject_id = failure_times.em_subject_id
LEFT OUTER JOIN (SELECT Count(em_subject_id) AS count,
em_student_id
FROM enrollment
WHERE (em_enrolled = 1)
GROUP BY em_student_id) AS current_student_enrollment
ON erequests.er_student_id =
current_student_enrollment.em_student_id
WHERE (subjects.sj_availability = 1)
AND (erequests.er_status NOT IN ('A', 'D'))
erequest.cs:
public partial class erequest
{
public int er_id { get; set; }
public int can_enroll { get; set; }
[Required]
[Range(1, 100000)]
[Display(Name = "Subject Id: ")]
public int er_subject_id { get; set; }
[Required]
[Range(1, 100000)]
[Display(Name = "Student Id: ")]
public int er_student_id { get; set; }
[Required]
[Display(Name = "Reason: ")]
public string er_reason { get; set; }
[Required]
[Display(Name = "Status: ")]
public string er_status { get; set; }
public virtual student student { get; set; }
public virtual subject subject { get; set; }
public IEnumerable<erequest> processedErequests { get; set; }
public IEnumerable<erequest> unprocessedErequests { get; set; }
}
耶哈哈哈我剛剛意識到,也只是關於刪除問題哈哈。 – bicycle
5分鐘後系統允許我接受 – bicycle