Ich möchte eine Web-API mit Oracle-Datenbank als mein Back-End und Dapper als ORM schreiben.
Ich habe odac.client.x86- und Oracle.ManagedDataAccess- und Dapper-Bibliotheken vom Paketmanager nuget installiert. Ich kann meine Datenbank vom Server-Explorer wie in der folgenden Abbildung gezeigt verbinden.
Als nächstes hatte ich meinem Projekt einen leeren Web Api2 Controller hinzugefügt. Dies ist meine Verbindungszeichenfolge Quelle = Oracle_test; Persist-Sicherheitsinformation = True; Benutzer-ID = tams; Passwort = ***********; Unicode = True .
Und mein Code ist
public IHttpActionResult Get()
{
using (OracleConnection db = new OracleConnection("Data Source = Oracle_test; Persist Security Info = True; User ID = tams; Password = tams; Unicode = True"))
{
db.Open();
dynamic result = db.Query("Select NAME from APPLICANT_BATCHES").SingleOrDefault();
return Ok(result);
}
}
Ich erhalte eine Ausnahme als TypeInitializationException wie in der folgenden Abbildung gezeigt
Ich bin neu zu Dapper und Orakel Datenbank bitte helfen Sie mir zu meinem Orakel Datenbank verbinden und bekommen Ergebnisse mit Dapper Orm in c #.
Meine Datenbankversion ist - 11.2.0.1.0 Oracle Database 11g Release 11.2.0.1.0 - 64-Bit-Produktion
Entfernen Sie den Unicode = True
Teil in Ihrer Verbindungszeichenfolge.
Laut der MSDN- Dokumentation :
Wenn Unicode auf True festgelegt ist, wenn die Oracle 9i-Clientsoftware nicht zur Kommunikation mit einem Oracle 9i-Server verwendet wird, können unvorhersehbare Ergebnisse auftreten.
Obwohl dies mit einer älteren Version von Oracle geschrieben wurde, habe ich es mit einer neueren Version repliziert. Ich habe ein Projekt, das den Oracle Managed Data Access-Treiber und Dapper verwendet, um eine Verbindung zu Oracle 11 herzustellen. Wenn ich meinen Verbindungszeichenfolgen Unicode = True
hinzufüge, funktioniert es nicht mehr und gibt mir eine Ausnahme beim Erstellen der neuen Oracle-Verbindung.