Entity Framework mit OleDB-Verbindung - bin ich nur Nüsse?

c# entity-framework ms-access

Frage

Ich experimentiere mit Entity Framework und möchte eine Verbindung zu einer Access 2007-Datenbank herstellen.

Der folgende Code wurde von http://msdn.microsoft.com/en-us/library/system.data.entityclient.entityconnection.connectionstring.aspx inspiriert

Ich habe den Verdacht, dass ich das falsche Ende des Stockes habe ...

OleDbConnectionStringBuilder oledbConn = new OleDbConnectionStringBuilder();

oledbConn.DataSource = @"..\..\..\..\Pruebas.accdb"; //yep Access 2007!

EntityConnectionStringBuilder entityBuilder = new EntityConnectionStringBuilder ();
entityBuilder.Provider = "Microsoft.ACE.OLEDB.12.0";
entityBuilder.ConnectionString = oledbConn.ToString();
EntityConnection ec = new EntityConnection(entityBuilder.ToString());
ec.Open();
ec.Close();

Der EntityConnectionStringBuilder sagt mir, dass er die DataSource-Eigenschaft nicht unterstützt. Ich kann mich gut mit ADO.net verbinden, damit ich weiß, dass der Pfad und der Anbieter korrekt sind.

Ist das nur der vollkommen falsche Ansatz?

Akzeptierte Antwort

Der Ansatz, den Sie zum Erstellen der EF-Verbindungszeichenfolge verwenden, ist korrekt.

ABER...

Das Entity Framework funktioniert nur mit Providern (dh SqlClient), die sogenannte Providerdienste unterstützen.

Der OleDB-Anbieter unterstützt 'Provider Services' nicht. Daher können Sie EF nicht mit der OleDb verwenden (es sei denn, Sie können einen OleDb-Anbieter eines Drittanbieters finden, der EF unterstützt).

Hoffe das hilft

Alex

(Entity Framework Team, Microsoft)


Beliebte Antwort

Erstellen Sie zum Erstellen Ihrer Verbindungszeichenfolge eine Datei namens a.udl auf Ihrem Desktop

Doppelklicken Sie darauf, um eine Benutzeroberfläche zu öffnen. Folgen Sie dem Assistenten, testen Sie die Verbindung.

Schließen Sie dann die Benutzeroberfläche, öffnen Sie die Datei mit Notepad, und Sie haben Ihre Verbindungszeichenfolge.

BEARBEITEN Es kann sein, dass Sie diesen Fehler erhalten, weil Ihnen eine Referenz fehlt. Entity Framework verwendet Erweiterungsmethoden. Daher kann es kompilieren, aber immer noch nicht funktionieren.



Lizenziert unter: CC-BY-SA with attribution
Nicht verbunden mit Stack Overflow
Ist diese KB legal? Ja, lerne warum
Lizenziert unter: CC-BY-SA with attribution
Nicht verbunden mit Stack Overflow
Ist diese KB legal? Ja, lerne warum