首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> ASP.NET 基礎 >> 關於ASP.NET

換種思維實現資料庫切換

     編輯:關於ASP.NET

傳統反射切換的缺點

  • 反射效能較低
  • 字串硬編碼易錯、難維護

新思路:標準介面 + 冗餘組件

以 OracleDAL / SqlServerDAL 為例:

  1. 兩組 DLL 內部類別名、方法名、命名空間**完全一致**(如皆為 Data.DAL、Insert(IModel))。
  2. DLL 檔名區分:DAL.OracleDAL.dll、DAL.SqlServerDAL.dll。
  3. 專案**只參考其中一個** DLL,切換資料庫時**僅替換 DLL 檔**即可,無需重編譯、無需反射。

進階:抽出共用介面組件

  • 建立 DAL.dll 定義共用介面與基底實作。
  • DAL.OracleDAL.dll、DAL.SqlServerDAL.dll 參考 DAL.dll 並實作介面。
  • 規範約束、減少重複代碼。

對比

方式切換動作
反射修改連線字串 + 修改配置檔指定當前資料庫
標準+冗餘修改連線字串 + 替換 DLL

簡易範例:OracleDAL

namespace Data
{
    // public class OracleDAL → 改為
    public class DAL
    {
        public void Insert(IModel model)
        {
            OracleCommand cmd = new OracleCommand("connectionstring");
            cmd.CommandText = "Insert into test(column1,column2) values (@column1,@column2)";
            cmd.ExecuteNonQuery();
        }
    }
}

SqlServerDAL 同理,唯連線/命令物件不同。編譯出兩組 DLL,部署時擇一放入 Bin 目錄。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved