一種方法是我最開始提到的原始方法:“應用程序中手動給屬性ConnectionString賦值,但這樣的話,每個業務實體在new完之後,都要給ConnectionString賦值”。感覺這種方法不大爽。試想一下,在構建N層架構的應用程序時,Concrete Class的上一層的開發人員還要去了解當前操作的Concrete Class是要操作哪個數據庫,對應哪個數據庫中的哪張表,多鬱悶...
可不可以將數據庫連接操作也封裝起來?答案是可以的!解決方法是:在dOOdad生成的Concrete Class的構造函數中設置數據庫連接字符串,eg:
public class Employee : _Employee
{
public Employee ()
{
this.ConnectionString = Properties.Settings.Default.StrConnectTo*DB;
}
// Other Members
}
這樣一來,Concrete Class的上一層的開發人員就不必關心底層有哪些個數據庫、哪些ConcreteClass需要操作哪些數據庫了:)