sql >> Database teknologi >  >> RDS >> Oracle

Sammenligning af Entity Framework-kompatible udbydere til Oracle?

Jeg kørte en hurtig sammenligning af de forskellige udbydere bestående af:

  1. Installationsoplevelse.
  2. Forbindelse.
  3. Server Explorer-oplevelse.
  4. Opdatering fra databaseoplevelse (database først).
  5. Tilknytning af datatyper (database først).

Her er konklusionerne:

1. Installationserfaring.

Oracles ODP.NET (beta 3):Kompleks installation af separate x86- og x64-versioner, installationsprogrammer, der ikke er designet til Windows.Fills systemsti (farligt tæt på maks. længde), installerer ikke til standardmapper (programfiler + appdata).

Devarts DotConnect:Glat installation, udbyder DLL er fuldt administreret.

DataDirects fremskridt:Glat installation, udbyder DLL administreres fuldt ud.

OPENLINK:Ser ud til at kræve installation på serversiden, testede ikke yderligere.

2. Forbindelse.

Oracles ODP.NET (beta 3):Kompliceret at konfigurere, kræver Oracle-installation på klientmaskine og enten yderligere TSN-fil i Oracle-installation eller en lang og kompleks forbindelsesstreng, der ligner LISP/Scheme.
Opdatering: Kunne ikke finde dette i dokumentationen, dog kan forbindelsesstreng også indeholde simpel datakildedefinition f.eks. servernavn:port/tjenestenavn.

Devarts DotConnect:Simpel forbindelsesstreng + wizard.

DataDirects fremskridt:Enkel forbindelsesstreng + guide.

3. Server Explorer-oplevelse.

Oracles ODP.NET (beta 3):Den mest kraftfulde af de tre muliggør nem redigering, visning af nøgler og indekser.

Devart's DotConnect:Visning af tabeller og felter.

DataDirects fremskridt:Muliggør nem redigering, visning af nøgler og indekser.

4. Opdatering fra databaseoplevelse (database først).

Oracles ODP.NET (beta 3):Ligetil.

Devarts DotConnect:Viser tabeller fra alle skemaer, ingen mulighed for at filtrere - gør det udmattende at finde tabeller.

DataDirects fremskridt:ligetil.

5. Datatypetilknytninger (database først).

Oracles ODP.NET (beta 3):Standardmapping for nummer(1,0), tal(2,0) og nummer(3,0) er forkerte*.Kan manuelt tilsidesætte for nummer(2,0) og tal(3) ,0). Fixing for nummer(1,0) virker ikke (i hvert fald ikke på beta 3 - kan have fungeret i beta 2).

Opdatering: Nu hvor udgivelsesversionen er ude (112030), er dette blevet rettet. Nogle kortlægninger er mulige via sektion i app.config-filen.

Devarts DotConnect:Viser tabeller fra alle skemaer, ingen mulighed for at filtrere - gør det udmattende at finde tabeller. Standardkortlægning for binær float, binær dobbelt, tidsstempel med tidszone, tal(2,0), tal(3,0) og tal(4) ,0) er forkerte*. Manuel tilsidesættelse burde virke - tjekket ikke.

DataDirects fremskridt:Standardtilknytninger er OK*.

(*) Kortlægninger, jeg forventede:

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

Hvis du ønsker, at databasetypen skal være i stand til at gemme et hvilket som helst tal i .NET-typeområdet, kræver IntX et tal(N,0), hvor Ceil(log10(2^X)) =N for lagring**.

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)

** Beregningen forudsætter tal uden fortegn, for tal med fortegn ceil(log(2^(X-1)).

Referencer for datatypeantagelser:
TECH on the Net
Devart
Oracle



  1. Sådan beregnes glidende gennemsnit i rødforskydning

  2. Få top n poster for hver gruppe af grupperede resultater

  3. Referencer Oracle brugerdefinerede typer over DBLINK?

  4. TANH() Funktion i Oracle