Oracle
 sql >> Base de données >  >> RDS >> Oracle

Comparaison des fournisseurs compatibles Entity Framework pour Oracle ?

J'ai effectué une comparaison rapide des différents fournisseurs comprenant :

  1. Expérience d'installation.
  2. Connectivité.
  3. Expérience de l'explorateur de serveurs.
  4. Mise à jour à partir de l'expérience de la base de données (la base de données d'abord).
  5. Mappages de types de données (base de données d'abord).

Voici les conclusions :

1. Expérience d'installation.

ODP.NET d'Oracle (bêta 3) :installation complexe de versions x86 et x64 séparées, programmes d'installation non conçus pour Windows. Remplit le chemin système (dangereusement proche de la longueur maximale), ne s'installe pas dans les dossiers standard (fichiers programme + appdata).

DotConnect de Devart :installation en douceur, la DLL du fournisseur est entièrement gérée.

Progrès de DataDirect :Installation fluide, la DLL du fournisseur est entièrement gérée.

OPENLINK :Semble nécessiter une installation côté serveur, n'a pas été testé davantage.

2. Connectivité.

ODP.NET d'Oracle (bêta 3) : compliqué à configurer, nécessite l'installation d'Oracle sur la machine cliente et soit un fichier TSN supplémentaire dans l'installation d'Oracle, soit une chaîne de connexion longue et complexe qui ressemble à LISP/Scheme.
Mise à jour : Impossible de trouver cela dans la documentation, cependant, la chaîne de connexion peut également contenir une définition de source de données simple, par exemple. nom_serveur :nom_port/service.

DotConnect de Devart :chaîne de connexion simple + assistant.

Progression de DataDirect :chaîne de connexion simple + assistant.

3. Expérience de l'explorateur de serveur.

ODP.NET d'Oracle (bêta 3) :le plus puissant des trois, permet d'éditer et de visualiser facilement les clés et les index.

Devart's DotConnect :Affichage des tables et des champs.

Progression de DataDirect :permet une édition et une visualisation faciles des clés et des index.

4. Mise à jour à partir de l'expérience de la base de données (base de données d'abord).

ODP.NET d'Oracle (bêta 3) :simple.

DotConnect de Devart :affiche les tables de tous les schémas, aucune option de filtrage - rend la recherche de tables épuisante.

Progression de DataDirect :Simple.

5. Mappages de types de données (base de données d'abord).

ODP.NET d'Oracle (bêta 3) :le mappage par défaut pour le nombre (1,0), le nombre (2,0) et le nombre (3,0) est incorrect*. Peut remplacer manuellement le nombre (2,0) et le nombre (3 ,0). La correction du nombre (1,0) ne fonctionne pas (du moins pas sur la bêta 3 - peut avoir fonctionné dans la bêta 2).

Mettre à jour : Maintenant que la version finale est sortie (112030), cela a été corrigé. Certains mappages sont possibles via la section du fichier app.config.

DotConnect de Devart :affiche les tables de tous les schémas, aucune option de filtrage - rend la recherche de tables épuisante. ,0) sont erronés*. Le remplacement manuel devrait fonctionner - n'a pas vérifié.

Progression de DataDirect :les mappages par défaut sont corrects*.

(*) Mappages attendus :

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

Si vous souhaitez que le type de base de données puisse stocker n'importe quel nombre dans la plage de types .NET, alors IntX nécessite un nombre (N, 0) où Ceil (log10 (2 ^ X)) =N pour le stockage **.

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)

** Le calcul suppose des nombres non signés, pour les nombres signés ceil(log(2^(X-1)).

Références pour les hypothèses de type de données :
TECH on the Net
Devart
Oracle