• 推荐
  • 评论
  • 收藏

分享一个面向EntityFramework的代码生成工具(源码)

2022-11-04    8777次浏览
干WEB开发已经有一年了,感触不少.有时候觉得做XX管理系统,难在搞对需求,难在基础设计,真正要写的代码,很多都是有些机械的,重复的,类似的.自从知道了有一种东西叫代码生成器之后,我就觉得这些事,这些代码应该尽可能的让计算机帮我们做.

  昨天编写了一个针对EF(VS08SP1中的版本)的代码生成工具,基本功能已经出来了,在此做个小小的分享.因为模板替换方面,目前的功能比较弱,替换后的结果有针对性(我自己的需求),所以我提供了源代码,有兴趣的可以拿去修改.下面简单的介绍一下.

  程序执行步骤:

  1. 加载EDMX文件,解析实体模型信息.
  2. 加载模板文件(需要事先制作).
  3. 勾选需要生成的实体.

  以下是代码目录:

代码很少,四五百行而已. 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

原文地址:https://www.cnblogs.com/Leo_wl/p/1988529.html