In ELMAH zum Protokollieren von Fehlern in der Datenbank können Sie schreiben:
%Vor%Wenn ich jedoch EntityFramework verwende, funktioniert das nicht, weil die Verbindungszeichenfolge für EF auch Metadaten enthält:
%Vor%Also, wie kann ich die EntityFramework-Verbindungszeichenfolge in Elmah verwenden?
Sie können die Datenbankverbindungszeichenfolge über den im Entitätsframework bereitgestellten ConnectionStringBuilder extrahieren.
%Vor%Um diese DB-Verbindungszeichenfolge mit Elmah zu verbinden, müssen Sie sie auf Application_Start (in Global.asax) setzen
und ändern Sie die Konfiguration
%Vor%Elmah fragt sql Connection string, aber wenn es nötig ist, erhalten Sie Ihre Verbindungszeichenfolge.
Sie können nicht - zumindest nicht direkt. Sie müssen den Teil der EF-Verbindungszeichenfolge extrahieren, der wirklich auf die Datenbank verweist ( provider connection string
), und diesen Teil in den eigenen Eintrag im Abschnitt <connectionStrings>
Ihrer web.config-Datei einfügen:
Oder Sie könnten es programmatisch machen - der Entitätskontext hat eine Eigenschaft namens "Verbindung", die wiederum eine Eigenschaft "ConnectionString" hat, nach der Sie suchen:
%Vor%Marc
Sie können zu diesem Zweck das Elmah.Contrib.EntityFramework Nugget-Paket verwenden.
(Disclaimer: Ich habe es geschrieben)
Tags und Links .net entity-framework asp.net elmah