2017-01-31 2 views

Antwort

-2

Verbinden Sie sich einfach über eine JDBC oder ODBC Driver mit Amazon Redshift und greifen Sie darauf wie eine normale SQL-Datenbank zu.

Sie verwenden die AWS-API zum Starten/Stoppen des Clusters, aber alle Abfragen und Anforderungen werden über die SQL-Verbindung ausgeführt.

+0

Dank John, habe ich das verstanden, aber können Sie Beispielcode bereitstellen, um dies mit .NET Core zu tun. –

+0

Ich glaube nicht, .NET Core unterstützt die Verbindung/Abfrage über ODBC-Treiber. –

+0

beantwortet in keiner Weise den Schlüsselpunkt zu dieser Frage der Verwendung von .net-Kern, der bis heute (2.0) noch nicht über ODBC, ist für 2,1 in diesem Stadium geplant https://github.com/dotnet/corefx/issues/13035 –

3

Diese Antwort ist ein für einen bestimmten Zeitpunkt und wird auch nicht altern ...

Das EntityFramework Kernprojekt ist diejenige, die ich auf das nächste Auge behalten würde. Der Mangel an ODBC ist besonders für diejenigen bekannt, die sich mit Oracle verbinden möchten. Vorläufig müssen Sie möglicherweise einen Oracle-Client für .NET Core forktieren und bei Bedarf Änderungen vornehmen.

Ich fand diese Projekte nach einer schnellen Google-Suche, die der Lage sein, kann man jetzt ...

helfen - https://github.com/LinqDan/oracleclientcore - https://github.com/LinqDan/Mono.Data.OdbcCore

Längerfristig sollten Sie ein Auge behalten diese beiden GitHub Fragen, die es für EntityFramework Kern und die .NETStandard APIs verfolgen ..

-Update 2017.06.23:

Dies ist nun möglich, durch das Npgsql.EntityFrameworkCore.PostgreSQL NuGet Paket und die zugehörigen Entity Framework-Core-Pakete. Anscheinend war es dem PostgreSQL-Team leid, auf die ODBC-Unterstützung zu warten (die immer noch nicht in der neuesten Version netstandard2.0 verfügbar ist) und schrieb im November-Zeitrahmen einen eigenen Treiber mit netstandard - back. Die getting started-Seite auf der npgsql-Website deckt die Verwendung im alten JSON-Projektformat ab - die aufgeführten Abhängigkeiten sind jedoch weiterhin gültig.

Hier ist, wie Sie das Paket verwenden würden ...

using (var conn = new NpgsqlConnection("Host=myserver;Username=mylogin;Password=******;Database=music")) 
{ 
    conn.Open(); 
    using (var cmd = new NpgsqlCommand()) 
    { 
     cmd.Connection = conn; 

     cmd.CommandText = "SELECT name FROM artists"; 
     using (var reader = cmd.ExecuteReader()) 
     { 
      while (reader.Read()) 
      { 
       Console.WriteLine(reader.GetString(0)); 
      } 
     } 
    } 
} 

Eine Sache im Auge zu behalten, wenn Sie diesen Treiber verwenden - es ist für PostgreSQL geschrieben, nicht Rotverschiebung. Während Redshift auf PostgreSQL basiert, ist die zugrundeliegende Engine eher Cassandra als alles andere. Daher musste Amazon bei der Entwicklung einige Entscheidungen treffen, um bestimmte Dinge zu entfernen, die PostgreSQL unterstützt - wie zum Beispiel SQL-Variablen. Aus diesem Grund haben Sie eine ziemlich einschränkende Erfahrung für bestimmte Dinge, die Sie in anderen Entity Framework-Implementierungen möglicherweise gewohnt sind. Solange Sie mit den direkten Zugriff * Connection, * Command und DataReader-Klassen bleiben und schreiben Sie Ihre eigene SQL, sollten Sie in Ordnung sein.

+0

Ich habe meine Antwort @ shahed-kazi aktualisiert, um eine reine .NET-Standard-Verbindungsmethode einzuschließen. –