Oracle
 sql >> база данни >  >> RDS >> Oracle

Сравнение на доставчици, съвместими с Entity Framework за Oracle?

Направих бързо сравнение на различните доставчици, състоящо се от:

  1. Опит при инсталиране.
  2. Свързване.
  3. Изпитване на сървъри.
  4. Актуализиране от базата данни (първо базата данни).
  5. Съпоставяния на типове данни (първо база данни).

Ето изводите:

1. Опит при инсталиране.

ODP.NET на Oracle (бета 3):Комплексна инсталация на отделни x86 и x64 версии, инсталатори, които не са предназначени за Windows. Запълва системния път (опасно близо до максималната дължина), не се инсталира в стандартни папки (програмни файлове + данни за приложения).

DotConnect на Devart:Плавна инсталация, DLL на доставчика се управлява напълно.

Напредък на DataDirect:Плавна инсталация, DLL на доставчика се управлява напълно.

OPENLINK:Изглежда изисква инсталация от страна на сървъра, не е тестван допълнително.

2. Свързване.

ODP.NET на Oracle (бета 3):Сложен за конфигуриране, изисква инсталиране на Oracle на клиентска машина и или допълнителен TSN файл в инсталацията на Oracle, или дълъг и сложен низ за връзка, който изглежда като LISP/Scheme.
Актуализация: Не можах да намеря това в документацията, но низът за връзка може също да съдържа проста дефиниция на източник на данни, напр. ServerName:port/serviceName.

DotConnect на Devart:Прост низ за връзка + съветник.

Прогрес на DataDirect:Прост низ за връзка + съветник.

3. Опит в Server Explorer.

ODP.NET на Oracle (бета 3):Най-мощният от трите, позволява лесно редактиране, преглед на ключове и индекси.

Devart's DotConnect:Преглед на таблици и полета.

Прогресът на DataDirect:Позволява лесно редактиране, преглед на ключове и индекси.

4. Актуализиране от базата данни (първо базата данни).

ODP.NET на Oracle (бета 3):Ясен.

DotConnect на Devart:Показва таблици от всички схеми, без опция за филтриране - прави намирането на таблици изтощително.

Напредъкът на DataDirect:Ясен.

5. Съпоставяне на типове данни (първо база данни).

ODP.NET на Oracle (бета 3):Съпоставянето по подразбиране за число(1,0), число(2,0) и число(3,0) е грешно*.Може ръчно да отмени за номер(2,0) и номер(3 ,0). Поправката за номер(1,0) не работи (поне не и в бета 3 - може да е работил в бета 2).

Актуализация: Сега, когато версията на изданието е излязла (112030), това е поправено. Някои съпоставяния са възможни чрез раздел във файла app.config.

DotConnect на Devart:Показва таблици от всички схеми, без опция за филтриране - прави намирането на таблици изтощително. Картографиране по подразбиране за двоичен float, двоичен двоен, времеви печат с часова зона, число(2,0), число(3,0) и число(4 ,0) са грешни*. Ръчното замяна трябва да работи - не проверих.

Напредък на DataDirect:Съпоставянията по подразбиране са ОК*.

(*) Съответствия, които очаквах:

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

Ако искате типът на базата данни да може да съхранява произволно число в диапазона от типове .NET, тогава IntX изисква число(N,0), където Ceil(log10(2^X)) =N за съхранение**.

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)

** Изчислението приема числа без знак, за числа със знак ceil(log(2^(X-1)).

Препратки за допускания за тип данни:
TECH в мрежата
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. Предпазни мрежи

  2. Как трябва да съхранявам GUID в Oracle?

  3. CONNECT BY или йерархични заявки в RDBMS, различни от Oracle

  4. Извикване на недефинирана функция oci_connect, php_oci8_12c.dll, windows 8.1, php5.6.6

  5. таблица или изглед на oracle не съществуват от вътрешната съхранена процедура