2016-07-02 2 views
1

Ich benutze Entity Framework, um db-Daten zu erhalten. Ich schrieb eine Aktion Tabellendaten im JSON-Format zurück, wie unten:Entity Framework gibt einen Fehler aus "Der Ausdruck konnte nicht ausgewertet werden. Die Operation wird nicht unterstützt. Unbekannter Fehler: 0x80070057."

public JsonResult GetEmployeesData() 
{ 
    using (TrainingDBEntities db = new TrainingDBEntities()) 
    { 
      return new JsonResult { Data = db.Employees, JsonRequestBehavior = JsonRequestBehavior.AllowGet }; 
    } 
} 

Es ist keine Ausnahme zu werfen. Aber eine Konsole Fehler wird mit dem Fehlercode auftritt: 500. Wenn ich debuggt, es zeigte einen Fehler

The function evaluation requires all threads to run

Wenn ich versuche, neu zu laden, ein neuer Fehler auf:

Unable to evaluate the expression. Operation not supported. Unknown error: 0x80070057

Ich habe keine irgendeine Idee, was ist mit diesem Code falsch?

+3

Können Sie den vollständigen Ausnahmetext inkl. Stapelverfolgung? Wie auch immer, ich denke, es ist ein Problem im Zusammenhang mit EF Lazy Loading. Was Sie also versuchen könnten, ist, 'Data = db.Employees' durch' Data = db.Employees.ToList() 'zu ersetzen, um EF zu zwingen, die Entitäten zu laden. – khlr

Antwort

2

Die Lösung lautet:

public JsonResult GetEmployeesData() 
{ 
    using (TrainingDBEntities db = new TrainingDBEntities()) 
    { 
      var emps = db.Employees.ToList(); 
      return new JsonResult { Data = emps, JsonRequestBehavior = JsonRequestBehavior.AllowGet }; 
    } 
} 

Ich denke db in der JsonResult Zugriff auf {} das Problem verursacht.

Verwandte Themen