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
- Jednostki Linq 2 - łącznik Microsoft SQL Server
- Dostawcy danych DataDirect ADO.NET
Microsoft SQL Server CE (wersja kompaktowa)
- Jakikolwiek dostawca?
MySQL
MySQL Connector (od wersji 6.0) - Czytałem o problemach podczas używania
Skip()
,Take()
aSort()
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
- Devart dotConnect dla Oracle
- Przykładowy dostawca Entity Framework dla Oracle - projekt społeczności
- Dostawcy danych DataDirect ADO.NET
DB2
- Dostawca serwera danych IBM obsługuje EF . Oto kilka ograniczeń .
- Dostawcy danych DataDirect ADO.NET
Sybase
Informix
- Dostawca serwera danych IBM obsługuje 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
- Złącze MySQL .NET , głównie funkcjonalne, ale oczekujące problemy z metodami CreateDatabase i DatabaseExists (wersja 6.3.5)
- Devart dotConnect dla MySQL
SQLite
PostgreSQL
Wyrocznia
Usługi Microsoft SQL Server Analysis Services (SSAS)
Odpowiedzi:
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.
źródło
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.
źródło
IBM Data Server Provider for .NET umożliwia Informix współpracę z EF. Zobacz tutaj: tekst linku
źródło
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
źródło
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
źródło
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.
źródło
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
źródło
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.
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ąć).
źródło
Problemy z Connector / NET w operatorach Take / Skip zostały rozwiązane dawno temu (dostawca EF jest obecnie kompatybilny z EF 5 i EF 4).
Wśród naprawionych błędów:
http://bugs.mysql.com/bug.php?id=45723
http://bugs.mysql.com/bug.php?id=72148
http://bugs.mysql.com/bug.php?id=70828
http://bugs.mysql.com/bug.php?id=69751
Dzięki.
źródło