sql >> Database >  >> RDS >> Oracle

Vergelijking van Entity Framework-compatibele providers voor Oracle?

Ik heb een snelle vergelijking gemaakt van de verschillende providers, bestaande uit:

  1. Installatie-ervaring.
  2. Connectiviteit.
  3. Server Explorer-ervaring.
  4. Bijwerken vanuit database-ervaring (database eerst).
  5. Toewijzingen van gegevenstypes (database eerst).

Hier zijn de conclusies:

1. Installatie-ervaring.

Oracle's ODP.NET (bèta 3):Complexe installatie van afzonderlijke x86- en x64-versies, installatieprogramma's niet ontworpen voor Windows. Vult systeempad in (gevaarlijk dicht bij maximale lengte), installeert niet in standaardmappen (programmabestanden + appgegevens).

Devart's DotConnect:Vlotte installatie, provider DLL wordt volledig beheerd.

Vooruitgang van DataDirect:Vlotte installatie, provider DLL wordt volledig beheerd.

OPENLINK:Lijkt installatie aan serverzijde vereist, niet verder getest.

2. Connectiviteit.

Oracle's ODP.NET (bèta 3):ingewikkeld om te configureren, vereist Oracle-installatie op clientcomputer en ofwel een extra TSN-bestand in Oracle-installatie of een lange en complexe verbindingsreeks die eruitziet als LISP/Scheme.
Update: Kon dit niet vinden in de documentatie, maar verbindingsreeks kan ook een eenvoudige gegevensbrondefinitie bevatten, b.v. servernaam:poort/servicenaam.

Devart's DotConnect:Eenvoudige verbindingsreeks + wizard.

De voortgang van DataDirect:eenvoudige verbindingsreeks + wizard.

3. Server Explorer-ervaring.

Oracle's ODP.NET (bèta 3):de krachtigste van de drie, maakt eenvoudige bewerking, weergave van sleutels en indexen mogelijk.

Devart's DotConnect:Bekijken van tabellen en velden.

De voortgang van DataDirect:maakt eenvoudige bewerking, weergave van sleutels en indexen mogelijk.

4. Updaten vanuit database-ervaring (database eerst).

Oracle's ODP.NET (bèta 3):eenvoudig.

Devart's DotConnect:toont tabellen van alle schema's, geen optie om te filteren - maakt het vinden van tabellen vermoeiend.

De voortgang van DataDirect:ongecompliceerd.

5. Toewijzingen van gegevenstypes (database eerst).

Oracle's ODP.NET (bèta 3):Standaardtoewijzing voor nummer (1,0), nummer (2,0) en nummer (3,0) zijn verkeerd *. Kan handmatig worden overschreven voor nummer (2,0) en nummer (3 ,0). Fixing voor nummer (1,0) werkt niet (tenminste niet op bèta 3 - werkte mogelijk in bèta 2).

Bijwerken: Nu de releaseversie uit (112030) is, is dit opgelost. Sommige toewijzingen zijn mogelijk via een sectie in het app.config-bestand.

Devart's DotConnect:toont tabellen van alle schema's, geen optie om te filteren - maakt het vinden van tabellen vermoeiend. Standaardtoewijzing voor binaire float, binary double, tijdstempel met tijdzone, nummer (2,0), nummer (3,0) en nummer (4 ,0) zijn fout*. Handmatige overschrijving zou moeten werken - niet gecontroleerd.

De voortgang van DataDirect:Standaardtoewijzingen zijn OK*.

(*) Kaarten die ik verwachtte:

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

Als u wilt dat het databasetype elk nummer in het .NET-typebereik kan opslaan, dan vereist IntX een nummer (N,0) waarbij Ceil(log10(2^X)) =N voor opslag**.

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)

** Bij de berekening wordt uitgegaan van niet-ondertekende getallen, voor getekende getallen ceil(log(2^(X-1)).

Referenties voor aannames van gegevenstypes:
TECH on the Net
Devart
Oracle



  1. SQLite TOON TABELLEN Equivalent

  2. SQL Server verbinden met Oracle

  3. Hoe BIT_LENGTH() werkt in MariaDB

  4. Hoe de dagnaam van een datum in Oracle te krijgen