移行可能なデータ・アクセス・レイヤの呼び出し(2)
2141 ワード
:
using System;
using System.Data;
using System.Data.Common;
using System.Configuration;
namespace DAL
{
public class CustomersData
{
public DataTable GetCustomers()
{
string ConnectionString =
ConfigurationSettings.AppSettings
["ConnectionString"];
DatabaseType dbtype =
(DatabaseType)Enum.Parse
(typeof(DatabaseType),
ConfigurationSettings.AppSettings
["DatabaseType"]);
IDbConnection cnn =
DataFactory.CreateConnection
(ConnectionString,dbtype);
string cmdString = "SELECT CustomerID" +
",CompanyName,ContactName FROM Customers";
IDbCommand cmd =
DataFactory.CreateCommand(
cmdString, dbtype,cnn);
DbDataAdapter da =
DataFactory.CreateAdapter(cmd,dbtype);
DataTable dt = new DataTable("Customers");
da.Fill(dt);
return dt;
}
public CustomersDS GetCustomerOrders(string CustomerID)
{
//
return null;
}
public CustomersList GetCustomersByCountry
(string CountryCode)
{
//
return null;
}
public bool InsertCustomer()
{
//
return false;
}
}
}
CustomerDataクラスのGetCustomers()メソッドでは、プロファイルの情報を読み込むことができます.DataFactoryクラスを使用して、特定の接続文字列からXxxConnectionインスタンスを作成し、基本データ・ソースに特定の依存性がない残りのコード部分を記述できます.
データ・レイヤとインタラクティブなビジネス・レイヤ・クラスの例は、次のように見えます.
using System;
using System.Data;
using DAL;
namespace BLL
{
public class Customers
{
public DataTable GetAllCustomers()
{
CustomersData cd = new CustomersData();
DataTable dt = cd.GetCustomers();
return dt;
}
public DataSet GetCustomerOrders()
{
//
return null;
}
}
}