代码生成利器-NCodeGenerate 教程(1) 遍历数据库内的所有表

 NCodeGenerate 的NCodeGenerate.DBSchema程序集里边的各个类对应着数据库里边个各种对象,有数据库(DatabaseSchema),表(TableSchema),列(ColumnSchema),主键(PrimaryKeySchema),键(TableKeySchema),视图(ViewSchema),存储过程(CommandSchema)等。

  下面作一个小的Demo,遍历以下数据库内的所有表的所有字段并打印出来。

1、新建模板

在模型中输入以下内容:

using System;
 using System.ComponentModel;
 
 using NCodeGenerateIDE;
 using NCodeGenerate.DBSchema;
 namespace DynamicCodeGenerate
 {
     public class myModel
     {
       
         private System.String _Namespace = string.Empty;
         public System.String Namespace
         {
             get { return _Namespace; }
             set { _Namespace = value; }
         }
         private System.String _RemoveTablePrefix = string.Empty;
         public System.String RemoveTablePrefix
         {
             get { return _RemoveTablePrefix; }
             set { _RemoveTablePrefix = value; }
         }
         private TableSchema _SourceTable;
         [Editor(typeof(TableEditor), typeof(TableEditor))]
         public TableSchema SourceTable
         {
             get { return _SourceTable; }
             set { _SourceTable = value; }
         }
         private DatabaseSchema _DataBase;
         [Editor(typeof(DataBaseEditor), typeof(DataBaseEditor))]
         public DatabaseSchema DataBase
         {
             get { return _DataBase; }
             set { _DataBase = value; }
         }
         private System.String _OutPutDir = string.Empty;
         [Editor(typeof(FolderEditor), typeof(FolderEditor))]
         public System.String OutPutDir
         {
             get { return _OutPutDir; }
             set { _OutPutDir = value; }
         }
       
 
     }
 }

对以上代码解释一下,

private TableSchema _SourceTable;
         [Editor(typeof(TableEditor), typeof(TableEditor))]
      public TableSchema SourceTable        {
            get { return _SourceTable; }
            set { _SourceTable = value; }

}
是对模型定义一个数据可以表的字段,其中 [Editor(typeof(TableEditor), typeof(TableEditor))] 是定义在属性设置里边调用数据库表的选择器。同样的代码中的30-36行定义了一个数据库的属性。

在代码中输入以下内容:

@model DynamicCodeGenerate.myModel
 @{
 foreach(var item in Model.DataBase.Tables){
     @:TableName:@item.Name
       foreach(var itemcolumn in item.Columns)
       {
                   @:Column:@itemcolumn.Name
       }
 }
 
 
 
 }

解释一下: @model DynamicCodeGenerate.myModel,这一句代码和asp.net mvc3 里边Razor里边的强类型Model的含意一样。在这里就是第一段Model定义代码中的 命名空间和类名。

在代码中只用到了 Model.DataBase,所以我们只需要在属性设置对话框里边设置一下数据库就行了。


点击DataBase字段对属性进行设置。

好了保存一下模板,然后运行,看结果了吧。

真是so easy!

 

下载地址:NCodeGenerate.zip

NCodeGenerate 系列文章:

一、代码生成利器-NCodeGenerate 是什么?
二、代码生成利器-NCodeGenerate 教程(1) 遍历数据库内的所有表
三、代码生成利器-NCodeGenerate 教程(2) NCodeGenerate的代码公用之一
四、代码生成利器-NCodeGenerate 教程(3) 生成代码到文件.
五、 代码生成利器-NCodeGenerate 教程(4) CodeSmith模板转换
六、代码生成利器-NCodeGenerate 教程(5) 多种数据库的支持



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值