Wie Ereignisse auf eine Embedded Firebird-Datenbank-Verbindung verwenden?
-
09-10-2019 - |
Frage
Wenn ich auf eine eingebettete Firebird-Datenbank zu verbinden, und ein Remote-Ereignis erstellen, ich System.NotSupportedException erhalten: Die angegebene Methode nicht unterstützt wird .. auf dem Konstruktor.
_fbRemoteEvent = new FbRemoteEvent(_fbConnection); //_fbConnection is valid and Opened
Mit Blick auf den Quellcode Call-Stack, es führt zu FesDatabase.cs mit
RemoteEvent IDatabase.CreateEvent()
{
throw new NotSupportedException();
}
Ich verwende die integrierte Version für automatisierte Tests Zweck ... Gibt es etwas, was ich tun kann Ereignis aus der Embedded-Datenbank in einem Test Kontext zu bekommen?
Lösung
Veranstaltungen sind leider nicht in Embedded-Modus in Firebird unterstützt - sie können nur über das Netzwerk ausgeführt werden. Dies ist aufgrund der Tatsache, dass das gesamte Protokoll eine Ereignisbehandlungsroutine beinhaltet die Einrichtung ein zweites Netzwerkverbindung zum FB-Server einrichten - wie Sie keine Netzwerkverbindung überhaupt in Embedded-Modus, das wird nicht funktionieren werden.
Andere Tipps
Die Ereignisse werden in Firebird unterstützt Embedded, aber der Firebird ado.net Provider (FirebirdSql.Data.FirebirdClient) implementieren keine Unterstützung für Ereignisse bei Verwendung von Embedded Firebird.