Dot-Net

數據訪問層設計模式

  • November 11, 2013

我必須使用 .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。當然,對於一些複雜的場景,這還不夠。但大多數情況下,這將完成工作,並且您不需要各種外部庫。

引用自:https://stackoverflow.com/questions/1055710