XCodeFactory

(下载地址:http://xcodefactory.cnblogs.com/Files/XCodeFactory/XCodeFactory3.0Setup.rar)
posts - 16, comments - 60, trackbacks - 0, articles - 0
  博客园 :: 首页 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理
     XCodeFactory的主要目标是使开发人员从SQL语句、从数据层解脱出来,也就是说,使用XCodeFactory之后,开发人员可以不用关心数据层的任何东西,而所要做的仅仅是维护xcf文件--XCodeFactory的项目文件,一个xcf文件对应你的一个VS.NET项目中数据层。    
   
只要有xcf文件在手,我就可以使用XCodeFactory自动生成数据库中的表、所有的数据对象类和数据访问类。所以当需要修改某个数据库中的某个表的结构时,只需要XCodeFactory打开xcf文件,修改对应的内容,点击生成按钮,然后重新编译你的VS项目。

   
你也许已经了解一些了,是的,思想是这样的,一个VS.NET项目对应着一个xcf文件,即
    VS.NET项目的数据层 《==》Xcf文件《==》(多个)物理数据库

    所谓数据对象类,可以说是一个简单的数据结构,它的所有属性都与对应的数据库表中的字段一一对应,注意,是“一一对应”,而数据库类型也转换为对应的C#类型,如NVarChar转换为stringimage转换为byte数组等等。

    而一个对象(即一个数据对象类的实例)对应着数据库表中的一条记录。
 

    如今已经有很多的数据层自动生成工具了,这些工具的作者对数据层的设计都有自己的一套方案,XCodeFactory也不例外。比如有的把数据库的访问操作作为数据对象(对应数据库中的一个表)的公有方法实现,有的则将数据对象和访问者独立开来。XCodeFactory采用的是后面一种思想。

    依照上文的例子,Student类对应的SqlServer的数据访问类StudentSqlDealer用于在OR之间转换,如StudentSqlDealer.GetObjects方法将数据库中符合条件的记录转换为Student数组返回,而StudentSqlDealer.Insert(student1),用于向数据库中插入一条记录。之所以没有将数据访问操作作为数据对象的公有方法提供,是因为:
1)不够直观,含义模糊。
    比如Student.Save表示将自己插入数据库,Student.Update表示更新数据库中对应的记录。那么使用者怎么知道到底要调用哪个了?难道每次调用前都要先调用Student.IsExist判断一下对应的记录是否存在?

2)有些操作很难表达。
    比如批插入,使用Student.InsertBatch吗?很明显InsertBatch根本就不是Student的职能。而使用StudentSqlDealer.InsertBatch就很清楚的表达了意思。 

    基于上述两个原因,所以将数据对象类和访问者独立开来,这样做还可以带来的额外的好处:
1)切换数据库类型更加容易。使用反射类工厂可以通过修改配置文件达到切换数据库类型的目的。
2)当数据库访问接口改变时,数据对象类不用修改。
    这些将会在后面的示例中体现出来。    XCodeFactory3.0完全攻略 目录





标题  
姓名  
主页
Email (博主才能看到) 
验证码 *  看不清,换一张 [登录][注册]
内容(请不要发表任何与政治相关的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
Google站内搜索

相关文章:

相关链接: