Направих бързо сравнение на различните доставчици, състоящо се от:
- Опит при инсталиране.
- Свързване.
- Изпитване на сървъри.
- Актуализиране от базата данни (първо базата данни).
- Съпоставяния на типове данни (първо база данни).
Ето изводите:
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