昨天编写了一个针对EF(VS08SP1中的版本)的代码生成工具,基本功能已经出来了,在此做个小小的分享.因为模板替换方面,目前的功能比较弱,替换后的结果有针对性(我自己的需求),所以我提供了源代码,有兴趣的可以拿去修改.下面简单的介绍一下.
程序执行步骤:
- 加载EDMX文件,解析实体模型信息.
- 加载模板文件(需要事先制作).
- 勾选需要生成的实体.
以下是代码目录:
代码很少,四五百行而已. Temp文件夹下的CodeBuild类负责代码生成,XML文件夹下的EntityModelAnalysis类负责EDMX文件解析,生成实体模型信息.所有界面操作都在FmMain类中.如果你用的VS2010,EF4,需要修改EntityModelAnalysis类(要花点时间分析EDMX文件的结构).
TempType类中定义了当前的模板类型,制作模板的时候需要将它们作为关键字添加到你的模板中,修改和添加模板替换的种类,需要修改TempType类和CodeBuild类中的CodeExchange方法(添加分支即可).
以下是程序界面
模板制作说明:比如我添加了一个这样的模板:
<~ENTITYNAME~>会被替换成实体类名,<~FIELDS~>会被替换成字段列表
界面操作说明:添加模板的方法:双击模板名称列会弹出打开文件窗口,默认的生成文件名称为"*.cs", * 会被替换成实体类名,你需要根据你的模板来修改这个名称,比如实体类接口模板,可以改成: "I*.cs".同一目录不允许同名文件,所以要保证每个模板的生成文件名称不同.生成时,每个选中的实体类都会遍历所有模板.
大致就介绍这么多,目前功能还比较简单,以后慢慢扩展..
源代码(附6个示例模板):https://files.cnblogs.com/xxfss2/CodeProduce.rar