我跑由不同供應商的快速比較:
- 安裝經驗。
- 連接。
- 服務器瀏覽器體驗。
- 從數據庫經驗更新(數據庫優先)。
- 數據類型映射(數據庫優先)。
以下是結論:
1.安裝經驗。
Oracle的ODP.NET(beta 3): 獨立x86和x64版本的複雜安裝,不是爲Windows設計的安裝程序。 填充系統路徑(危險接近最大長度),不會安裝到標準文件夾(程序文件+ appdata)。
Devart的DotConnect: 順利安裝,提供DLL被全面管理。
的DataDirect的進展情況: 順利安裝,提供DLL被全面管理。
OpenLink公司: 似乎需要服務器端安裝,並沒有進一步測試。
2.連接性。
Oracle的ODP.NET(測試版3): 複雜的配置,需要在Oracle安裝或看起來像LISP /計劃一個漫長而複雜的連接字符串的客戶機與附加TSN文件的Oracle安裝。
更新:在文檔中找不到這個,但連接字符串也可以包含簡單的數據源定義,例如服務器名稱:端口/服務名。
Devart的DotConnect: 簡單的連接字符串+嚮導。
DataDirect的進度: 簡單連接字符串+嚮導。
3.服務器瀏覽器體驗。
Oracle的ODP.NET(beta 3): 這三者中功能最強大,可輕鬆編輯,查看密鑰和索引。
Devart的DotConnect: 查看錶和字段。
的DataDirect的進展情況: 能夠輕鬆編輯,查看鍵和索引的。
4.從數據庫經驗更新(數據庫優先)。
Oracle的ODP.NET(beta 3): 直截了當。
Devart的DotConnect: 顯示所有模式中的表,沒有選擇過濾 - 使查找表耗盡。
DataDirect的進度: 直截了當。
5.數據類型映射(數據庫優先)。
Oracle的ODP.NET(beta 3): 數字(1,0),數字(2,0)和數字(3,0)的默認映射錯誤*。 可以手動覆蓋編號(2,0)和編號(3,0)。修復數字(1,0)不起作用(至少不在beta 3上 - 可能在測試版2中工作)。
更新:現在發佈版本已經過期(112030),這已得到修復。 有些映射可以通過section in app.config file進行。
Devart的DotConnect: 顯示來自所有模式的表,沒有過濾選項 - 使查找表耗盡。 二進制浮點數,二進制double,具有時區的時間戳,數字(2,0),數字(3,0)和數字(4,0)的默認映射錯誤*。手動覆蓋應該有效 - 沒有檢查。
DataDirect的進度: 默認映射是OK *。
(*)映射我的預期:
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)
**計算假設無符號數,爲符號數小區(日誌(2 ^(X-1))
參考數據類型的假設:
TECH on the Net
Devart
Oracle
感謝您的提示,我會在測試之前升級。 –