Dot-Net
數據訪問層設計模式
我必須使用 .NET 設計一個數據訪問層,它可能會使用多個具有相同關係設計的數據庫管理系統(Mysql 和 Sql Server)。
基本上,從一個數據庫切換到另一個數據庫必須很簡單,所以我希望您向我推荐一些對您有用的網站或書籍,它們具有通用的設計模式或一般資訊來實現這種數據訪問層。
謝謝你。
我推薦 Martin Fowler 的企業應用架構模式。
模式列表也在他的網站上
DataMapper模式也很重要。
我喜歡使用基於介面的數據庫訪問。Ado.net 的每個數據庫提供程序都實現了基本介面,當您使用它們時,您的程式碼可能如下所示:
public static IDbConnection GetConnection(string connectionName) { ConnectionStringSettings ConnectString = ConfigurationManager.ConnectionStrings[connectionName]; DbProviderFactory Factory = DbProviderFactories.GetFactory(ConnectString.ProviderName); IDbConnection Connection = Factory.CreateConnection(); Connection.ConnectionString = ConnectString.ConnectionString; return Connection; }然後,當你需要與 db 通信時:
public static DataTable Dummy() { using (IDbConnection Connection = GetConnection("SiteSqlServer")) { IDbCommand Command = Connection.CreateCommand(); Command.CommandText = "DummyCommand"; Command.CommandType = CommandType.StoredProcedure; Connection.Open(); using (IDataReader reader = Command.ExecuteReader()) { DataTable Result = new DataTable(); Result.Load(reader); return Result; } } }使用這種技術,您可以創建完全獨立於數據庫的 DAL。當然,對於一些複雜的場景,這還不夠。但大多數情況下,這將完成工作,並且您不需要各種外部庫。