WisDom.Net ---持久層
1.什么是持久層
持久層負責最基礎的功能支撐,為項目提供一個高層,統一,和并發的數據持久機制,提供了比如建立數據庫連接,關閉數據庫連接,執行sql語句,事物管理等基礎功能,為上層的數據處理層執行相關的支持,大大的簡化了數據,增刪改查等功能的相關的功能的開發過程,同時也保持了多層結構的優勢,在WisDom.Net 中考慮支持的數據庫有MySQL ,sqlsever ,orcale 等不同的數據庫,在這里我們使用.NET 4.0 中逆變與協邊來來實現,相關的功能、
2.什么是協變,協邊
協變逆變正是利用繼承關系 對不同參數類型或返回值類型 的委托或者泛型接口之間做轉變。我承認這句話很繞,如果你也覺得繞不妨往下看看。如果一個方法要接受Dog參數,那么另一個接受Animal參數的方法肯定也可以接受這個方法的參數,這是Animal向Dog方向的轉變是逆變。如果一個方法要求的返回值是Animal,那么返回Dog的方法肯定是可以滿足其返回值要求的,這是Dog向Animal方向的轉變是協變。由子類向父類方向轉變是協變 協變用于返回值類型用out關鍵字 由父類向子類方向轉變是逆變 逆變用于方法的參數類型用in關鍵字
3.WisDom.Net 中的實現
給出一點點參考代碼,
namespace WisDom.Net.PublicUnit{ public class BaseDb<DbConn, DbCmd, DbParam, DbReader, DbAdapter, DbTrans> where DbConn : DbConnection, new() where DbCmd : DbCommand, new() where DbParam : DbParameter, new() where DbReader : DbDataReader where DbAdapter : DbDataAdapter, new() where DbTrans : DbTransaction { // code } public class SqlSever:BaseDb<SqlConnection,SqlCommand,SqlParameter,SqlDataReader,SqlDataAdapter,SqlTransaction> { } public class ole:BaseDb<OleDbConnection, OleDbCommand, OleDbParameter, OleDbDataReader, OleDbDataAdapter, OleDbTransaction> { } public class Mysql : BaseDb<MySqlConnection, MySqlCommand, MySqlParameter, MySqlDataReader, MySqlDataAdapter, MySqlTransaction> { }}
新聞熱點
疑難解答