happyhippy

这个世界的问题在于聪明人充满疑惑,而傻子们坚信不疑。--罗素

       在我的《MyGeneration学习笔记(1) : 使用MyGeneration生成存储过程和数据访问层代码 》一文中,我提到用internal string _raw = ProjectName.Properties.Settings.Default.ConnectionString;这条语句来初始化数据库连接字符串,现在想想,这种方法还有一定的局限性,即只能用在只有一个数据库的系统;如果我们开发的组件或程序集(Assembly)需要用多个数据库,则还要想其他办法:)

      一种方法是我最开始提到的原始方法:“应用程序中手动给属性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需要操作哪些数据库了:)

posted on 2007-01-29 13:14  Silent Void  阅读(1521)  评论(2编辑  收藏  举报