中文 | English | 帮助中心

业务咨询热线:

新闻中心
  • 公司新闻
  • 常见问题
当前位置:首页>>新闻中心新闻中心
OEA框架学习:使用动软代码生成器

2012/6/9 23:22:09     (被阅读4137次)

 

image

这里就不细说了吧。

四、动软模板

OEA实体模板。

 1:  <#@ template language="c#" HostSpecific="True" #>
 2:  <#@ output extension= ".cs" #>
 3:  <#
 4:      TableHost host = (TableHost)(Host);
 5:      host.Fieldlist.Sort(CodeCommon.CompareByintOrder);
 6:  #>
 7:  using System;
 8:  using System.Collections.Generic;
 9:  using System.Linq;
10:  using System.Text;
11:  using OEA.Library;
12:  using OEA.MetaModel;
13:  using OEA.MetaModel.Attributes;
14:  using OEA.MetaModel.View;
15:  
16:  namespace  <#= host.NameSpace #> 
17:  {
18:      <# if( host.TableDescription.Length > 0) {#>
19:      //<#= host.TableDescription #>
20:      <# } #>
21:      [RootEntity, Serializable]
22:      public class <#= host.GetModelClass(host.TableName) #> : MyEntity
23:      {
24:         <# foreach (ColumnInfo c in host.Fieldlist)
25:          { #>/// <summary>
26:          /// <#= string.IsNullOrEmpty(c.Description)  ? c.ColumnName : c.Description #>
27:          /// </summary>        
28:          public static readonly Property<<#= CodeCommon.DbTypeToCS(c.TypeName) #>> <#= c.ColumnName #>Property = P<<#= host.GetModelClass(host.TableName) #>>.Register(e => e.<#= c.ColumnName #>);
29:          public <#= CodeCommon.DbTypeToCS(c.TypeName) #> <#= c.ColumnName #>
30:          {
31:              get { return this.GetProperty(<#= c.ColumnName #>Property); }
32:              set { this.SetProperty(<#= c.ColumnName #>Property, value); }
33:          }        
34:          <# } #> 
35:      }
36:  
37:      [Serializable]
38:      public class <#= host.GetModelClass(host.TableName) #>List : MyEntityList
39:      {
40:          public <#= host.GetModelClass(host.TableName) #>List()
41:          {
42:  
43:          }     
44:      }
45:  
46:      public class <#= host.GetModelClass(host.TableName) #>Repository : EntityRepository
47:      {
48:          protected <#= host.GetModelClass(host.TableName) #>Repository() { }
49:      }
50:  
51:      internal class <#= host.GetModelClass(host.TableName) #>Config : EntityConfig<<#= host.GetModelClass(host.TableName) #>>
52:      {
53:          protected override void ConfigMeta()
54:          {
55:              base.ConfigMeta();
56:  
57:              Meta.MapAllPropertiesToTable();
58:              
59:              //基础数据启用分布式缓存
60:              //Meta.EnableCache();
61:          }
62:  
63:          protected override void ConfigView()
64:          {
65:              base.ConfigView();
66:          <# foreach (ColumnInfo c in host.Fieldlist)
67:          { #> 
68:          View.Property(<#= host.GetModelClass(host.TableName) #>.<#= c.ColumnName #>Property).HasLabel("<#= string.IsNullOrEmpty(c.Description)  ? c.ColumnName : c.Description #>").ShowIn(ShowInWhere.All);
69:          <# } #> 
70:          }
71:      }
72:  }

直接把上面的代码保存 *.cmt 格式的文件就可以了。

生成出来的效果是:

  1:  using System;
  2:  using System.Collections.Generic;
  3:  using System.Linq;
  4:  using System.Text;
  5:  using OEA.Library;
  6:  using OEA.MetaModel;
  7:  using OEA.MetaModel.Attributes;
  8:  using OEA.MetaModel.View;
  9:  
 10:  namespace  Maticsoft 
 11:  {
 12:          //HeatingType
 13:          [RootEntity, Serializable]
 14:      public class HeatingType : MyEntity
 15:      {
 16:         /// <summary>
 17:          /// id
 18:          /// </summary>        
 19:          public static readonly Property<int> idProperty = P<HeatingType>.Register(e => e.id);
 20:          public int id
 21:          {
 22:              get { return this.GetProperty(idProperty); }
 23:              set { this.SetProperty(idProperty, value); }
 24:          }        
 25:          /// <summary>
 26:          /// ht_Name
 27:          /// </summary>        
 28:          public static readonly Property<string> ht_NameProperty = P<HeatingType>.Register(e => e.ht_Name);
 29:          public string ht_Name
 30:          {
 31:              get { return this.GetProperty(ht_NameProperty); }
 32:              set { this.SetProperty(ht_NameProperty, value); }
 33:          }        
134:       }
135:  
136:      [Serializable]
137:      public class HeatingType List : MyEntityList
138:      {
139:          public HeatingTypeList()
140:          {
141:  
142:          }     
143:      }
144:  
145:      public class HeatingType Repository : EntityRepository
146:      {
147:          protected HeatingTypeRepository() { }
148:      }
149:  
150:      internal class HeatingTypeConfig : EntityConfig<HeatingType>
151:      {
152:          protected override void ConfigMeta()
153:          {
154:              base.ConfigMeta();
155:  
156:              Meta.MapAllPropertiesToTable();
157:              
158:              //基础数据启用分布式缓存
159:              //Meta.EnableCache();
160:          }
161:  
162:          protected override void ConfigView()
163:          {
164:              base.ConfigView();
165:           
166:          View.Property(HeatingType.idProperty).HasLabel("id").ShowIn(ShowInWhere.All);
167:          
168:          View.Property(HeatingType.ht_NameProperty).HasLabel("ht_Name").ShowIn(ShowInWhere.All);
169:          
192:           }
193:      }
194

 

博客园详细原文:http://www.cnblogs.com/luomingui/archive/2012/05/30/2526143.html

 

 

分享到:

 

关于我们 | 诚聘英才 | 商务合作 | 常见问题 | 联系我们 | 友情链接 | 意见反馈