Eine Liste der Entity Framework-Anbieter für verschiedene Datenbanken

82

Welche Anbieter gibt es und welche Erfahrungen haben Sie damit gemacht?

Ich würde gerne alle möglichen nativen .NET Framework Entity Framework-Anbieter kennenlernen, die es gibt, sowie deren Einschränkungen im Vergleich zu den Standard- LINQ2Entities (von MS für MS SQL). Wenn es mehr für dieselbe Datenbank gibt, noch besser. Sag es mir und ich werde diesen Beitrag mit dieser Liste aktualisieren.

Fühlen Sie sich frei, weitere Anbieter direkt in diesen Beitrag aufzunehmen oder eine Antwort zu geben, und andere (einschließlich ich) werden sie der Liste hinzufügen.

Entity Framework 1

Microsoft SQL Server Standard / Enterprise / Express

Microsoft SQL Server CE (Compact Edition)

  • Irgendein Anbieter?

MySQL

  • MySQL Connector (ab Version 6.0) - Ich habe über Fragen lesen bei der Verwendung Skip(), Take()und Sort()in dem gleichen Ausdrucksbaum - jeder ist willkommen zur Eingabe ihrer Erfahrung / Wissen in Bezug auf diese.

    Hinweis : Die Integration von MySQL Connector / NET Visual Studio wird in den Express-Editionen von Visual Studio nicht unterstützt. Dies bedeutet, dass Sie MySQL-Datenbanken nicht im Datenbank-Explorer-Fenster anzeigen oder eine MySQL-Datenquelle über die Dialogfelder des Visual Studio-Assistenten hinzufügen können. Einige Benutzer stellen möglicherweise fest, dass dies ihre Fähigkeit einschränkt, Entity Framework und MySQL in Visual Studio Express zu verwenden.

  • Devart dotConnect für MySQL - ähnliche Probleme wie der MySql-Connector, den ich gelesen habe, und beide versuchen, MS dafür verantwortlich zu machen [diese Probleme sollen gelöst werden ]

SQLite

PostgreSQL

Orakel

DB2

Sybase

Informix

Feuervogel

Provider Wrapper

Entity Framework 4 ( Beta )

Microsoft SQL Server

  • Microsoft Linq to Entities 4 - ausgeliefert mit .net 4.0 und Visual Studio 2010; Bisher der einzige Anbieter für EF4

MySQL

SQLite

PostgreSQL

Orakel

Microsoft SQL Server Analysis Services (SSAS)

Robert Koritnik
quelle
2
Jemand - gibt es InMemory-Anbieter? Natürlich werden die verfügbaren Optionen stark reduziert. Aber etwas ist besser als nichts, oder?
Pure.Krome
sqlite verfügt über eine In-Memory-DB-Option, die sich perfekt für automatisierte Tests eignet, schnell, leicht und nahezu voll funktionsfähig ist.
Jason Meckley
1
Unterhaltsame Tatsache: Dies ist eine der wenigen Fragen zu SO mit 5 oder mehr Antworten, bei denen die Gesamtpunktzahl aller verfügbaren Antworten weniger als 1/3 der Fragenpunktzahl beträgt. :)
dotNET

Antworten:

3

DB2 wird funktionieren, aber wenn Sie einige der sofort einsatzbereiten .NET-Funktionen verwenden möchten, die wir alle für selbstverständlich halten (denken Sie an Mitgliedschafts- und Rollenanbieter), haben Sie einiges an Arbeit vor sich. DB2 kann mit gespeicherten Prozeduren nicht wirklich gut umgehen, daher sehen Sie sich auch viele parametrisierte Inline-SQLs an.

Ich hatte auch einige Leistungsprobleme mit dem Anbieter von IBM. Es gibt einen anderen Anbieter von einem Unternehmen namens DataDirect. Es scheint performanter zu sein, aber es wird Sie kosten. Bei einer externen Website, bei der Geschwindigkeit wichtig ist, sind die Kosten wahrscheinlich kein Problem.

Ich bin mir sicher, dass DB2 ein großartiges System ist, wenn Sie auf einer anderen Plattform aufbauen, aber es wurde nicht wirklich entwickelt, um mit .NET gut zu spielen. Wenn Sie nicht bereits mit DB2 verheiratet sind, würde ich woanders suchen.

RepDetec
quelle
3

Ich glaube, DB2 funktioniert noch nicht mit EF 4. Wenn ja, korrigiert mich bitte jemand und sagt mir, wie es gemacht wird. Ich kann die DB2-Anbieter nicht dazu bringen, in den Datenquellendialogen angezeigt zu werden.

camainc
quelle
1
In der oberen Liste ist die DB2-Unterstützung für EF4 ohnehin nicht angegeben.
Robert Koritnik
2

Mit dem IBM Data Server Provider für .NET kann Informix mit EF arbeiten. Siehe hier: Linktext

Joel
quelle
2

Der Data Server Provider von IBM enthält einige Einschränkungen, die ihn für komplexere Abfrageszenarien irritierend und anfällig machen. Außerdem funktioniert der EDMX-Designer nicht mit Informix-Tabellen mit dem Präfix "informix. *". Siehe hier: Linktext

Joel
quelle
2

Sie vermissen System.Data.SQLite für SQLite. Es ist Open Source und meiner Erfahrung nach ziemlich zuverlässig. Soweit ich weiß, war es einer der ersten EF-Anbieter für andere Datenbanken als SQL Server

Thomas Levesque
quelle
2

Die Probleme "Überspringen / Nehmen und Bestellen" wurden vor einigen Monaten beim Devart-Anbieter behoben.

Einige Hinweise zur EF4-Unterstützung
Derzeit bieten wir Unterstützung für Visual Studio Beta 1 und EF4 Beta 1. Wir planen, den Build mit EF4-Unterstützung Ende Dezember - Anfang Januar zu veröffentlichen. Wir können unseren Entity Framework-Support nicht als ideal bezeichnen - dieser ORM wurde ursprünglich für MS SQL Server entwickelt, sodass die Möglichkeit, die Wunder anderer DBMS zu berücksichtigen, erheblich eingeschränkt ist.

Es gibt eine Reihe von Problemen, die derjenige, der einen EF-Anbieter implementiert, einfach nicht umgehen kann. Einige Beispiele finden Sie hier . Das Hauptproblem hängt mit den Anweisungen CROSS APLY und OUTER APPLY zusammen, die in einigen Fällen von der EF-Laufzeit generiert werden. Andere DBMS bieten diese Anweisung nicht an, daher tritt das Problem bei der Übersetzung auf. Man sollte auch erkennen, dass EF im Fall von Legacy-Datenbanken im Allgemeinen nicht anwendbar ist.

Wir berücksichtigen die Benutzer, die mit dem Standard-Microsoft-Designer nicht zufrieden sind, und liefern Entity Developer - ein leistungsstarkes Tool für die Entwurfszeit - mit unseren Produkten aus.

Devart
quelle
Funktioniert Ihr Provider ordnungsgemäß mit Funktionsimporten (gespeicherte Prozedur), die Parameter akzeptieren? weil ich Probleme mit dem MySql-Connector hatte.
Robert Koritnik
Wir haben derzeit keine offenen Anfragen bezüglich parametrisierter Funktionsimporte. Sie können jedoch überprüfen, ob dotConnect für MySQL Ihre Anforderungen erfüllt. Laden Sie einfach die Testversion von unserer Website herunter. Eine weitere Sache, die für EF v1 aktuell ist: Wir bieten nicht nur Unterstützung für Funktionsimporte, sondern auch für Prozeduren, die keine Ergebnismengen zurückgeben. Dies wurde aufgrund der spezifischen Codegenerierung und des Entity Developer-Tools erreicht.
Devart
2

EF 7 unterstützt folgende DB-Anbieter

• Microsoft SQL Server

• SQLite

• Microsoft SQL Server Compact Edition

• Npgsql (PostgreSQL)

• IBM Datenserver

• InMemory (zum Testen)

Referenz

Aamol
quelle
Ich denke, dies wurde jetzt in EntityFrameworkCore umbenannt, da es sich erheblich unterscheidet: thedatafarm.com/data-access/…
Andrew Pate
1

MySQL hat einen Connector für EF4 , die aktuelle Version ist 6.3.5 und seine Hauptfunktionen funktionieren einwandfrei, aber es gibt immer noch Probleme mit einigen Methoden, z

  • System.Data.Objects.ObjectContext.CreateDatabase ()
  • System.Data.Objects.ObjectContext.DatabaseExists ()

Dies macht es schwierig, den Model-First-Ansatz vollständig zu nutzen. Dies ist durch manuelles Bearbeiten des MySQL-Skripts möglich (verfügbar mit der CreateDatabaseScript-Methode). Das MySQL-Team scheint nicht bestrebt zu sein, diese Fehler zu beheben. Ich bin mir nicht sicher, wie hoch das Engagement tatsächlich ist, aber es ist sicherlich niedriger als früher.

Abgesehen davon schlagen die gleichen Methoden auch mit SQL CE fehl (sie sind nicht implementiert, und ich sehe nicht, dass das MS-Team dies wahrscheinlich bald angehen wird).

RedGlyph
quelle
Weitere Informationen zur MySQL-Unterstützung für VS2010 / EF4 finden Sie auf dieser Seite: dev.mysql.com/doc/refman/5.1/en/… . Sie benötigen MySQL Connector / Net Version 6.3.2 oder höher.
Mathijsuitmegen