Lista dostawców Entity Framework dla różnych baz danych


82

Którzy dostawcy są dostępni i jakie masz doświadczenia z ich wykorzystaniem

Chciałbym wiedzieć o wszystkich możliwych natywnych dostawcach .NET Framework Entity Framework, które istnieją, a także o ich ograniczeniach w porównaniu z domyślnymi LINQ2Entities (z MS dla MS SQL). Jeśli jest ich więcej dla tej samej bazy danych, jeszcze lepiej. Powiedz mi, a zaktualizuję ten post za pomocą tej listy.

Zapraszam do dodawania dodatkowych dostawców bezpośrednio do tego postu lub udzielenia odpowiedzi, a inni (w tym ja) dodadzą go do listy.

Entity Framework 1

Microsoft SQL Server Standard / Enterprise / Express

Microsoft SQL Server CE (wersja kompaktowa)

  • Jakikolwiek dostawca?

MySQL

  • MySQL Connector (od wersji 6.0) - Czytałem o problemach podczas używania Skip(), Take()a Sort()w tym samym drzewie ekspresji - każdy zapraszamy do wejścia ich doświadczenie / wiedza o tym.

    Uwaga : MySQL Connector / NET Visual Studio Integration nie jest obsługiwana w wersjach Express programu Visual Studio, co oznacza, że ​​nie będzie można wyświetlać baz danych MySQL w oknie eksploratora bazy danych ani dodawać źródła danych MySQL za pośrednictwem okien dialogowych kreatora programu Visual Studio. Niektórzy użytkownicy mogą stwierdzić, że ogranicza to ich możliwość korzystania z Entity Framework i MySQL w programie Visual Studio Express).

  • Devart dotConnect dla MySQL - podobne problemy do złącza MySql, które przeczytałem i obaj próbują winić za to MS [te problemy mają zostać rozwiązane ]

SQLite

PostgreSQL

Wyrocznia

DB2

Sybase

Informix

ognisty Ptak

Provider Wrappers

Entity Framework 4 ( beta )

Microsoft SQL Server

  • Linq firmy Microsoft do Entities 4 - dostarczane z .net 4.0 i Visual Studio 2010; jak dotąd jedyny dostawca EF4

MySQL

SQLite

PostgreSQL

Wyrocznia

Usługi Microsoft SQL Server Analysis Services (SSAS)


2
Każdy - czy są jacyś dostawcy InMemory? Oczywiście dostępne opcje będą mocno okrojone… ale coś jest lepsze niż nic, prawda?
Pure.Krome

sqlite ma opcję db w pamięci, która jest idealna do testów automatycznych, szybka, lekka i prawie w pełni funkcjonalna.
Jason Meckley,

1
Zabawny fakt: jest to jedno z niewielu pytań dotyczących SO z 5 lub więcej odpowiedziami, w którym łączny wynik wszystkich dostępnych odpowiedzi jest mniejszy niż 1/3 wyniku pytania. :)
dotNET

Odpowiedzi:


3

DB2 będzie działać, ale jeśli chcesz skorzystać z niektórych gotowych do użycia funkcji .NET, które wszyscy uważamy za pewnik (pomyśl o członkostwie i dostawcach ról), będziesz miał sporo pracy do wykonania. DB2 naprawdę nie radzi sobie dobrze z procedurami składowanymi, więc przyglądasz się także wielu parametryzowanym wbudowanym SQL.

Miałem również problemy z wydajnością u dostawcy z IBM. Dostępny jest inny dostawca firmy o nazwie DataDirect. Wygląda na bardziej wydajne, ale będzie cię to kosztować. W przypadku czegoś takiego jak zewnętrzna strona internetowa, w której szybkość jest ważna, koszt prawdopodobnie nie będzie problemem.

Jestem pewien, że DB2 to świetny system, jeśli tworzysz na innej platformie, ale tak naprawdę nie został zaprojektowany do współpracy z .NET. Chyba że jesteś już żonaty z DB2, poszukałbym gdzie indziej.


3

Nie sądzę, aby DB2 działało jeszcze z EF 4. Jeśli tak, niech ktoś mnie poprawi i powiedz, jak to się robi. Nie mogę wyświetlić dostawców DB2 w oknach dialogowych źródła danych.


1
Górna lista i tak nie określa obsługi DB2 dla EF4.
Robert Koritnik


2

Dostawca serwera danych IBM zawiera pewne ograniczenia, które sprawiają, że jest on irytujący i delikatny w przypadku bardziej złożonych scenariuszy zapytań. Ponadto projektant EDMX nie współpracuje z tabelami Informix z prefiksem „informix. *”. Zobacz tutaj: tekst linku


2

Brakuje System.Data.SQLite dla SQLite. Jest open source i z mojego doświadczenia wynika, że ​​jest całkiem niezawodny. O ile wiem, był to jeden z pierwszych dostawców EF dla baz danych innych niż SQL Server


2

Problemy „Pomiń / Weź i zamawiaj” zostały rozwiązane kilka miesięcy temu u dostawcy Devart.

Kilka uwag na temat obsługi EF4
W tej chwili zapewniamy wsparcie dla Visual Studio Beta 1 i EF4 Beta 1. Planujemy wypuścić kompilację z obsługą EF4 pod koniec grudnia - początek stycznia. Nie możemy nazwać naszego wsparcia Entity Framework wsparciem idealnym - ten ORM został pierwotnie zaprojektowany dla MS SQL Server, więc możliwość uwzględnienia cudów innych DBMS jest znacznie ograniczona.

Istnieje wiele problemów, których osoba, która wdraża dostawcę EF, po prostu nie jest w stanie obejść. Niektóre przykłady są dostępne tutaj . W niektórych przypadkach główny problem jest związany z instrukcjami CROSS APLY i OUTER APPLY generowanymi przez środowisko wykonawcze EF. Inne DBMS nie zapewniają tej instrukcji, więc pojawia się problem z tłumaczeniem. Należy również zdać sobie sprawę, że w przypadku starszych baz danych EF jest generalnie nie do zastosowania.

Bierzemy pod uwagę użytkowników, którzy nie są zadowoleni z domyślnego projektanta Microsoft i dostarczamy Entity Developer - potężne narzędzie czasu projektowania - z naszymi produktami.


Czy Twój dostawca działa poprawnie z importami funkcji (procedura składowana), które akceptują parametry? ponieważ miałem problemy ze złączem MySql.
Robert Koritnik

W tej chwili nie mamy żadnych otwartych żądań dotyczących importu funkcji sparametryzowanych. Możesz jednak sprawdzić, czy dotConnect for MySQL spełnia Twoje wymagania, po prostu pobierz wersję próbną z naszej strony. Jeszcze jedna rzecz aktualna dla EF v1 - zapewniamy wsparcie nie tylko dla importu funkcji, ale także dla procedur, które nie zwracają żadnych zestawów wyników. Zostało to osiągnięte dzięki specyficznemu generowaniu kodu i narzędziu Entity Developer.
Devart

2

EF 7 obsługuje następujących dostawców bazy danych

• Microsoft SQL Server

• SQLite

• Microsoft SQL Server Compact Edition

• Npgsql (PostgreSQL)

• Serwery danych IBM

• InMemory (do testowania)

Odniesienie


Myślę, że teraz zmieniono nazwę na EntityFrameworkCore, ponieważ jest znacznie inna: thedatafarm.com/data-access/ ...
andrew pate.

1

MySQL ma złącze dla EF4 , aktualna wersja to 6.3.5 i jego główne funkcjonalności działają dobrze, ale nadal ma problemy z kilkoma metodami, np.

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

co utrudnia pełne wykorzystanie podejścia opartego na modelu. Jest to możliwe poprzez ręczną edycję skryptu MySQL (dostępnego za pomocą metody CreateDatabaseScript). Zespół MySQL nie wydaje się być chętny do rozwiązywania tych błędów, nie jestem pewien, jaki jest poziom zaangażowania z ich strony, ale z pewnością jest niższy niż kiedyś.

To powiedziawszy, te same metody zawodzą również w SQL CE (nie są zaimplementowane i nie wydaje mi się, aby zespół MS miał się tym szybko zająć).


Więcej informacji na temat obsługi MySQL dla VS2010 / EF4 można znaleźć na tej stronie: dev.mysql.com/doc/refman/5.1/en/… . Będziesz potrzebował MySQL Connector / Net w wersji 6.3.2 lub wyższej.
mathijsuitmegen

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.