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

  • 相关阅读:
    http 请求code状态码
    uni-app实现弹窗遮罩
    小程序分享报错 Cannot read property 'apply' of null;at page XXX onShareAppMessage function
    mac下出现xcrun: error导致git、svn无法使用的解决办法
    uniapp 小程序实现自定义底部导航栏(tarbar)
    Python2.X和Python3.X中Tkinter模块的文件对话框、下拉列表的不同
    Mac 设置git的template
    每天一点点之vue框架开发
    uni-app开发小程序-使用uni.switchTab跳转后页面不刷新的问题
    小程序实现微信朋友圈时间显示效果
  • 原文地址:https://www.cnblogs.com/Leo_wl/p/1988529.html
Copyright © 2011-2022 走看看