XCodeFactory

C#编程爱好者
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

通过Spring.net来使用XCodeFactory生成的数据层!

Posted on 2006-02-08 14:17  C#编程爱好者  阅读(2455)  评论(2编辑  收藏  举报
    从前面的系列文章中,大家已经习惯了使用IDataEntry接口来使用XCodeFactory生成的数据层代码。一般来说,一个DataEntry实例可以访问指定的数据库中的所有表。如果有多个数据库了?大家可能还记得DataEntrance这个静态类,它支持对多个数据库的访问,但是这不是我推荐使用的方式。我的方法是,对于每一个数据库,使用唯一的一个DataEntry实例来访问,在没有使用Spring.net之前,这些DataEntry实例可以作为“全局静态”存在。在有了Spring.net Ioc容器的帮助,就不用这么麻烦了,可以让Ioc容器来帮我们管理这些DataEntry实例。
    比如我们要访问两个数据库DataBaseOne和DataBaseTwo ,那么两个对应的DataEntry实例配置如下:
            <!-- dataEntryToDbOne-->
            
<object name="dataEntryToDbOne" type="EnterpriseServerBase.DataAccess.DataEntry ,EnterpriseServerBase" init-method="Initialize">
                
<property name="ConnectString" value="Data Source =127.0.0.1; user id =sa ;password =chenqi; Initial Catalog =DataBaseOne"/>
                <property name="DataBaseType" value="SqlServer"/>
                
<property name="DealerAssemName" value="DistributeWareServiceProject"/>
            
</object>

             <!-- dataEntryToDbTwo -->
            
<object name="dataEntryToDbTwo " type="EnterpriseServerBase.DataAccess.DataEntry ,EnterpriseServerBase" init-method="Initialize">
                
<property name="ConnectString" value="Data Source =127.0.0.1; user id =sa ;password =chenqi; Initial Catalog =DataBaseTwo"/>
                <property name="DataBaseType" value="SqlServer"/>
                
<property name="DealerAssemName" value="DistributeWareServiceProject"/>
            
</object>
    
    如果,我们的某个业务对象taskLogger需要使用dataEntryToDbOne,也可以通过Ioc进行自动装配,配置片断如下:
            <object name="taskLogger" type="DistributeWareServiceProject.DbTaskLogger ,DistributeWareServiceProject">
                
<property name="DataEntryToDataBaseOne" ref="dataEntryToDataBaseOne"/>
            
</object>
    
    大家早就知道,XCodeFactory支持Ole、SqlServer和Oracle数据库,如果现在要从SqlServer数据库切换为Oracle,仅仅需要上面红色的配置项为“Oracle”,即可。

    Spring.net 可以在任何项目中使用,当XcodeFactory遇见了Spring.net后,天空就更加晴朗了:)