Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Porównanie dostawców zgodnych z Entity Framework dla Oracle?

Przeprowadziłem szybkie porównanie różnych dostawców, składające się z:

  1. Doświadczenie instalacji.
  2. Łączność.
  3. Doświadczenie Server Explorer.
  4. Aktualizacja z bazy danych (najpierw baza danych).
  5. Mapowanie typów danych (najpierw baza danych).

Oto wnioski:

1. Doświadczenie instalacji.

Oracle ODP.NET (beta 3):Złożona instalacja oddzielnych wersji x86 i x64, instalatory nie przeznaczone dla ścieżki systemowej Windows.Fills (niebezpiecznie blisko maksymalnej długości), nie instalują się w standardowych folderach (pliki programów + dane aplikacji).

DotConnect:Smooth instalacji Devarta, biblioteka DLL dostawcy jest w pełni zarządzana.

DataDirect's Progress:Płynna instalacja, biblioteka DLL dostawcy jest w pełni zarządzana.

OPENLINK:Wydaje się, że wymaga instalacji po stronie serwera, nie testowałem dalej.

2. Łączność.

Oracle ODP.NET (beta 3):Skomplikowana konfiguracja, wymaga instalacji Oracle na komputerze klienta i dodatkowego pliku TSN w instalacji Oracle lub długiego i złożonego ciągu połączenia, który wygląda jak LISP/Scheme.
Aktualizacja: Nie można tego znaleźć w dokumentacji, jednak ciąg połączenia może również zawierać prostą definicję źródła danych, np. nazwa_serwera:nazwa portu/usługi.

DotConnect firmy Devart:Proste parametry połączenia + kreator.

DataDirect's Progress:Prosty ciąg połączenia + kreator.

3. Eksplorator serwera.

Oracle ODP.NET (beta 3):Najpotężniejszy z trzech, umożliwia łatwą edycję, przeglądanie kluczy i indeksów.

Devart's DotConnect:przeglądanie tabel i pól.

DataDirect's Progress:Umożliwia łatwą edycję, przeglądanie kluczy i indeksów.

4. Aktualizacja z bazy danych (najpierw baza danych).

Oracle ODP.NET (beta 3):Prosto.

Devart's DotConnect:Pokazuje tabele ze wszystkich schematów, brak opcji filtrowania - sprawia, że ​​wyszukiwanie tabel jest wyczerpujące.

Postęp DataDirect:prosto.

5. Mapowania typów danych (najpierw baza danych).

Oracle ODP.NET (beta 3):Domyślne mapowanie dla number(1,0), number(2,0) i number(3,0) jest błędne*.Można ręcznie nadpisać dla number(2,0) i number(3 ,0). Naprawienie numeru(1,0) nie działa (przynajmniej nie w wersji beta 3 - mogło działać w wersji beta 2).

Aktualizacja: Teraz, gdy wersja wydania jest już dostępna (112030), zostało to naprawione. Niektóre mapowania są możliwe w sekcji w pliku app.config.

Devart's DotConnect:Pokazuje tabele ze wszystkich schematów, brak opcji filtrowania - sprawia, że ​​wyszukiwanie tabel jest wyczerpujące.Domyślne mapowanie dla binarnego zmiennoprzecinkowego, binarnego podwójnego, znacznika czasu ze strefą czasową, number(2,0), number(3,0) i number(4 ,0) są błędne*. Sterowanie ręczne powinno działać — nie sprawdzano.

DataDirect's Progress:Domyślne mapowania są OK*.

(*) Oczekiwane mapowania:

DB Data Type    .NET Data Type
integer     Decimal
int         Decimal
smallint        Decimal
long        String
decimal     Decimal
rowid       String
float       Decimal
double      Decimal
binary float    Single
binary double   Double
char[40]        String
charvar[40]     String
natchar[40]     String
natcharvar[40]  String
natcharacter[40]    String
natcharactervar[40] String
number      Decimal
numeric     Decimal
nvarchar2[40]   String
real        Decimal
date        DateTime
timestamp       DateTime
timestamplocal  DateTime
timestampzone   DateTimeOffset
xml String
raw15       Binary
raw16       Guid
raw17       Int64
number(1,0)     Boolean
number(2,0)     Byte or SByte
number(3,0)     Byte or SByte (accepted Int16 as OK too)
number(4,0)     Int16
number(5,0)     Int16 (accepted Int32 as OK too)
number(6,0)     Int32
number(7,0)     Int32
number(8,0)     Int32
number(9,0)     Int32
number(10,0)    Int32 (accepted Int64 as OK too)
number(11,0)    Int64
number(15,0)    Int64
number(16,0)    Int64
number(17,0)    Int64
number(18,0)    Int64
number(19,0)    Int64 (accepted Decimal as OK too)
number(20,0)    Decimal (would accept Int64 as OK too)
number(21+,0)   Decimal

Jeśli chcesz, aby typ bazy danych mógł przechowywać dowolną liczbę w zakresie typów .NET, IntX wymaga liczby (N,0), gdzie Ceil(log10(2^X)) =N dla przechowywania**.

Bool (Int1) ==> number(1,0)
Byte (Int8) ==> number(3,0)
Int16, UInt16 ==> number(5,0)
Int32, UInt32 ==> number(10,0)
Int64 ==> number(19,0)
UInt64 ==> number(20,0)

** Obliczenia zakładają liczby bez znaku, dla liczb ze znakiem ceil(log(2^(X-1)).

Odniesienia do założeń typu danych:
TECHNIK w sieci
Devart
Oracle



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Baza danych Oracle wisi w nieskończoność w zapytaniach UPDATE

  2. Lipiec 2016 Zasilacz nie robi isqora

  3. Problem z hibernacją z wyzwalaczem Oracle do generowania identyfikatora z sekwencji

  4. _gc_fusion_compression

  5. Sumuj kolumny z wartościami null w Oracle