1

Ich verwende gespeicherte Prozeduren und führe die gespeicherten Prozeduren mit der Funktion "FromSql" aus, die von Microsoft Entity Framework Core bereitgestellt wird.Entity Framework fängt keine SQL-Ausnahme ab

Wenn eine SQL-Ausnahme Entity Framework ist nicht die Ausnahme überhaupt nicht fangen.

Zum Beispiel fehlt die gespeicherte Prozedur "GetAppSections" in SQL.Wenn ich die App ausführen Im Debug-Modus kann ich den Fehler "fehlende gespeicherte Proc" tief im lokalen Fenster suchen.

jedoch Logik geht nie auf die „Catch“ block.Entity Framework-perlt einfach den Befehl ‚FromSql‘ und gibt ein leeres Objekt. Der "Fang" -Block wird nie getroffen.

Jede Idee, warum Entity Framework holt nicht die „fehlende gespeicherte Prozedur“ Ausnahme von SQL?

public virtual IEnumerable<appSection> GetSections() 
    { 
     try 
     { 

      return _context.appSections.FromSql("dbo.GetAppSections @p0", 
            parameters: new[] { _standarParams.userID.ToString()}).AsEnumerable(); 

     } 
     catch (Exception ex) 
     { 
      // error handling code 
     } 
    } 
+0

Ist es durch Rückkehr unterdrückt werden? Vielleicht versuchen Sie stattdessen eine var, um das Ergebnis zu erfassen. –

+0

Danke. Ich hatte es vor dem Posten versucht. IEnumerable zu ToList zu ändern, wie Steve vorgeschlagen hat, hat funktioniert. – mvc234

Antwort

1

Sie geben eine IEnumerable zurück, die zurückgestellt wird. Sie benötigen den try catch-Block um den Code herum, der tatsächlich auf IEnumerable zugreift (ToList, ForEach usw.).

Siehe here und here

+0

Vielen Dank! Ich habe AsEnumerable() in ToList() geändert und kann nun die Ausnahme abfangen! – mvc234

Verwandte Themen