学习O/RM,从最简单的例子开始...之四
之前的几篇文章:
学习O/RM,从最简单的例子开始...之一
学习O/RM,从最简单的例子开始...之二
学习O/RM,从最简单的例子开始...之三 最新Demo见末尾下载地址。
学习O/RM,从最简单的例子开始...之四 代码生成工具下载和最新Demo
大家下载代码生成工具之后,可以参照Demo示例,再看看怎么使用,因为那个工具还没有完全做好,呵呵。
大概一个多礼拜了吧,终于完成了支持这个“最简单的O/RM例子”的代码生成工具。只完成一些简单的功能,界面不友好,某些按钮无效等等,都是你可能遇到的问题。
先简单介绍一下这个代码自动生成工具的功能:
·连接数据库是首先不可少的了,呵呵,这个不能算是功能。
·列举选定数据库的所有表和视图,树形结构显示,如果显示所有的数据库,速度比较慢,也没有必要这么做,所以就支持选择特定的数据库
·根据选择的数据表或视图,生成对应的映射文件——映射文件的格式,可以看最新版Demo中的xml文件(位于App_Data下)。
·生成最简单的存储过程,当然,没有检查是否已经存在阿什么的,这些不是本工具的重点,带过...或者以后扩展。
·自带了DAL的5个文件,对,就5个文件。这就是这个“最简单的O/RM例子”的最大亮点。不管你有多少个实体类,有多少个Insert、Select操作,只要这5个文件就全部帮你搞定(怎么听起来像广告词?:))呵呵,貌似神通阿,当然,如果业务很复杂的话,还是需要进行细微修改的,但灵活性很大的。
·BLL层类呢,自带了一个类文件,即:ObjectStore.cs,就是所有实体操作类的父类了。用范型实现,是通往DAL的罗马大道阿:)。另外还支持生成BLL层的实体操作类(姑且这么叫了,实在不知道给它起什么名字好,比如Employee类,里面有Insert、Update等操作,可以参见Demo)
·Model层实体类生成,这个不说了,简单到家了。不过这一个功能还有待提高的地方。比如:目前都是根据数据表生成对应的实体类,一个字段对应一个属性,类与类之间的关系完全得不到体现。(目前我用过的代码生成工具似乎都不具备这个功能,望知晓者告知)例如Demo中的Employee继承自Person,同时与Department关联。但目前生成的代码都得不到体现,然后我们实际项目中,本着OO的原则,务必会进行代码修改,让Department表对应的实体类(DepartmentInfo)成为Employee表对应的实体类(EmployeeInfo)的一个属性(成员)。这些都将在下一版本得到实现。我已经发现了系统自带的存储过程(sp_fkeys)可以帮我实现我的想法。
·最后一个功能了:生成解决方案!哈哈,最值得期待的功能了,但我遗憾地告诉你,我目前才实现了自动生成对应的目录结构和类文件、映射文件等。还没有做成类似“用VS2005手动创建网站”生成的完整解决方案。一方面是没有类似的经验,另一方面,春节到了,后天我就回老家过年啦,今天是今年最后一天在公司上班。回家后虽然能上网,但没有编程环境,可怜...
·最后,奉上这个简单的代码生成工具,以及之前完成的一个最新版Demo例子(里面包含了几乎所有可能出现的业务需求了)
·点击下载代码生成工具 ORMSupport : https://files.cnblogs.com/lxinxuan/ORMSupport.rar (时间太急了,甚至没有做成安装程序,解压缩之后直接运行ORMSupport .exe,这个代码没有什么技术含量的,为了快速开发,写得很“过程化”,所以不公开也罢,免得RP下降阿)
·点击下载最新版Demo示例 : https://files.cnblogs.com/lxinxuan/ORM%20V0.2.2.rar (更新日期2月2号)
希望大家能给点建议,做得很粗糙,如果有什么想法,一定要告诉我啊,在此谢过了。代码杂乱,希望不要太让你难受 :)
也希望园子里的高手,给我指点指点,我很少有这样的机会,谢谢!
快要过年了,下一次来写blog,估计要到明年春节以后了。假期我仍然会浏览园子最新动态,学习更多更新技术。