zoukankan      html  css  js  c++  java
  • 分享一个面向EntityFramework的代码生成工具(源码)

    干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

  • 相关阅读:
    算法训练 P1103
    算法训练 表达式计算
    算法训练 表达式计算
    基础练习 时间转换
    基础练习 字符串对比
    Codeforces 527D Clique Problem
    Codeforces 527C Glass Carving
    Codeforces 527B Error Correct System
    Codeforces 527A Glass Carving
    Topcoder SRM 655 DIV1 250 CountryGroupHard
  • 原文地址:https://www.cnblogs.com/Leo_wl/p/1988529.html
Copyright © 2011-2022 走看看