MySQL數(shù)據(jù)庫與PostgreSQL的DAAB
以下的文章主要介紹的是MySQL數(shù)據(jù)庫與PostgreSQL的DAAB ,提及MySQL數(shù)據(jù)庫都是我們大家耳熟能詳?shù)?,那么PostgreSQL的DAAB 是不是有點陌生?以下的文章就有對PostgreSQL的DAAB與MySQL的介紹。
最近在研究EntLib2.0的DAAB。DAAB的特性之一是可以使我們在編寫代碼的時候不必關心數(shù)據(jù)庫到底是什么,也就是DAAB可以當作數(shù)據(jù)庫抽象層。但是你得有你要使用的數(shù)據(jù)庫在這個抽象層之下的驅動。
我們知道現(xiàn)在開源關系數(shù)據(jù)庫主要有兩個,一個是MySQL,一個是PostgreSQL。這兩個數(shù)據(jù)庫現(xiàn)在都有現(xiàn)成的開源.NET Data Provider。由于微軟也提供了EntLib2.0的源代碼,這樣我們很容易仿照其SQL Server的DAAB Database Provider寫出他們在抽象層之下的驅動。我試著寫了一下,MySQL數(shù)據(jù)庫的部分實現(xiàn)了,PostgreSQL的完全沒有實現(xiàn)。
MySQL的DAAB Database Provider除了XmlReader相關的部分,其他部分都實現(xiàn)了。這是由于MySQL的.net connecter雖然是仿照SQLServer的.NET Database Provider來定義的接口,但是.NET Framework 2.0新增的一些內容還沒有實現(xiàn),MySQL對于XML的支持也不如SQL Server那么完善。
PostgreSQL的DAAB Database Provider完全沒有實現(xiàn)。和MySQL數(shù)據(jù)庫的.NET Database Provider類似,PostgreSQL的Npgsql也沒實現(xiàn)XmlRaeder的功能,除此以外,Npgsql的NpgsqlCommand對象竟然沒有繼承DbCommand, ICloneable,導致在一些NpgsqlCommand強制轉換的情景下會失敗。這個情況導致了PostgreSQL的DAAB Database Provider沒辦法實現(xiàn)。
比較MySQL和PostgreSQL對.NET的支持,看來是MySQL更勝一籌。
為了解決使用Entlib的DAAB來訪問PostgreSQL的問題,估計可能得寫一個ODBC的DAAB Database Provider了。研究了一下ODBC的.NET Database Provider的情況,似乎ODBC和MySQL數(shù)據(jù)庫的情況類似,在.NET Framework2.0的類庫里面并沒有對XmlReader支持,估計仍然不能實現(xiàn)ODBC的DAAB Database Provider的XmlReader部分。
以上的相關內容就是對MySQL數(shù)據(jù)庫和PostgreSQL的DAAB 的介紹,望你能有所收獲。
【編輯推薦】
- 安裝MySQL在linux as3之下
- MySQL連接字符串中的幾個重要步驟
- MySQL連接字符串的經(jīng)驗總結
- MySQL update 語句的正確用法
- 實現(xiàn)MySQL分頁用LIMIT函數(shù)