NCodeGenerate 的NCodeGenerate.DBSchema程序集里邊的各個類對應着數據庫里邊個各種對象,有數據庫(DatabaseSchema),表(TableSchema),列(ColumnSchema),主鍵(PrimaryKeySchema),鍵(TableKeySchema),視圖(ViewSchema),存儲過程(CommandSchema)等。
下面作一個小的Demo,遍歷以下數據庫內的所有表的所有字段並打印出來。
1、新建模板
在模型中輸入以下內容:
1 using System;
2 using System.ComponentModel;
3
4 using NCodeGenerateIDE;
5 using NCodeGenerate.DBSchema;
6 namespace DynamicCodeGenerate
7 {
8 public class myModel
9 {
10
11 private System.String _Namespace = string.Empty;
12 public System.String Namespace
13 {
14 get { return _Namespace; }
15 set { _Namespace = value; }
16 }
17 private System.String _RemoveTablePrefix = string.Empty;
18 public System.String RemoveTablePrefix
19 {
20 get { return _RemoveTablePrefix; }
21 set { _RemoveTablePrefix = value; }
22 }
23 private TableSchema _SourceTable;
24 [Editor(typeof(TableEditor), typeof(TableEditor))]
25 public TableSchema SourceTable
26 {
27 get { return _SourceTable; }
28 set { _SourceTable = value; }
29 }
30 private DatabaseSchema _DataBase;
31 [Editor(typeof(DataBaseEditor), typeof(DataBaseEditor))]
32 public DatabaseSchema DataBase
33 {
34 get { return _DataBase; }
35 set { _DataBase = value; }
36 }
37 private System.String _OutPutDir = string.Empty;
38 [Editor(typeof(FolderEditor), typeof(FolderEditor))]
39 public System.String OutPutDir
40 {
41 get { return _OutPutDir; }
42 set { _OutPutDir = value; }
43 }
44
45
46 }
47 }
對以上代碼解釋一下,
private TableSchema _SourceTable;
[Editor(typeof(TableEditor), typeof(TableEditor))]
public TableSchema SourceTable {
get { return _SourceTable; }
set { _SourceTable = value; }
}
是對模型定義一個數據可以表的字段,其中 [Editor(typeof(TableEditor), typeof(TableEditor))] 是定義在屬性設置里邊調用數據庫表的選擇器。同樣的代碼中的30-36行定義了一個數據庫的屬性。
在代碼中輸入以下內容:
1 @model DynamicCodeGenerate.myModel
2 @{
3 foreach(var item in Model.DataBase.Tables){
4 @:TableName:@item.Name
5 foreach(var itemcolumn in item.Columns)
6 {
7 @:Column:@itemcolumn.Name
8 }
9 }
10
11
12
13 }
解釋一下: @model DynamicCodeGenerate.myModel,這一句代碼和asp.net mvc3 里邊Razor里邊的強類型Model的含意一樣。在這里就是第一段Model定義代碼中的 命名空間和類名。
在代碼中只用到了 Model.DataBase,所以我們只需要在屬性設置對話框里邊設置一下數據庫就行了。

點擊DataBase字段對屬性進行設置。
好了保存一下模板,然后運行,看結果了吧。
真是so easy!
下載地址:NCodeGenerate.zip
文檔:文檔
NCodeGenerate 系列文章:
