2023年6月21日发(作者:)
⾃定义动软代码模版编写这⾥使⽤的是动软的模板.这是动软代码⽣成器的⼀个整体界⾯。下⾯做的⽰例是从右边模板管理中的选⼀个模板进⾏修改,这⾥我选了简单三层模板中的模板1<#@ template language="c#"
HostSpecific="True"
#>2<#@ output extension= ".cs"
#>3<# TableHost host = (TableHost)(Host);
4string
DbParaHead=Head;
5string
DbParaDbType=DbType;
6string
preParameter=ameter;
7string
ModelSpace = ace+".Model."+ elClass(ame);
8ColumnInfo identityKey=tyKey;
9string
returnValue = "void";
10if
(identityKey!=null) {
11returnValue = ToCS(me); }#>在模板上右键,编辑查看。就能看到上⾯的代码,这是模板中⾃定义的⼀些变量。1using
System;2using
;3using
ent;4using
c;5using
;6using
DBUtility;7
8namespace
DAL <# if( > 0){ #> .<#= #><# } #>9{ <# if( > 0) {#> //<#= escription #> <# } #>
10 public
partial
class
<#= Class(ame) #>DAO {}上⾯的代码也是模板中我们⾮常熟悉的引⽤,接下来我来说下我今天要修改的内容。UPDATE功能,动软中的update功能是将⼀个实体传进去,全部修改,这⾥我把它修改成,只修改实体中存在的值1///
void
Update(<#= ModelSpace #>Entity model)
5{
6 StringBuilder strSql=new
StringBuilder();
7 List
List
}8先来定义两个变量,因为和实际代码中是⼀样的,所以这⾥只有⼀点,就是<# = ModelSpace#>,这个变量已经在⽂件的开头定义了,就是该模板的空间名+类名。接下来我们需要写⼀个for循环,来判断哪些代码要添加的sql语句中,哪些代码不需要。("update <#= ame #> set ");2<# for(int
i=0;i< ;i++){
3ColumnInfo c = ist[i]; #><# if
(!tity) {#>
4if(!OrEmpty(model.<#=Name#>)){
(" <#= Name #> = <#=preParameter#><#=Name#>6<# if
(i< -1 ) {#>,<#}#> ");}<# }#>7<# }#>这⾥的⼏个变量解释写<#= ame #>tity<#=preParameter#><#=Name#>.表名字段数是否主键@符号列名最后加⼀个条件语句(" where <#= reParameterExpression(, true ,) #> ");现在sql语句写好了,当时发现没有写变量;添加变量⽐较简单。只要在每个判空的条件语句后⾯添加就可以了
<# if (!tity) {#>
if(!OrEmpty(model.<#=Name#>)){ (" <#= Name #> = <#=preParameter#><#=Name#> , "); (new SqlParameter("<#=preParameter#><#=Name#>",model.<#=Name#>)); }<# }#><# }#>
添加之后,会发现所有实体的属性都被⽤OrEmpty()来判断,所以这⾥还要添加⼀个判断属性类型的条件<# if (!tity) {#>
<# if(ToCS(me)=="string") {#>if(!OrEmpty(model.<#=Name#>)){ (" <#= Name #> = <#=preParameter#><#=Name#> , "); (new SqlParameter("<#=preParameter#><#=Name#>",model.<#=Name#>)); }<# }#><# if(ToCS(me)=="int"|| ToCS(me)=="long"|| ToCS(me)=="float"|| ToCS(me)=="DateTime"|| ToCS(me)=="decimal") {#>if(model.<#=Name#>!=0){ (" <#= Name #> = <#=preParameter#><#=Name#> , "); (new SqlParameter("<#=preParameter#><#=Name#>",model.<#=Name#>)); } <#}#><#}#>
上⾯是个例⼦,具体情况具体分析。最后整体的UPDATE代码如下///
<# if(ToCS(me)=="string") {#> if(!OrEmpty(model.<#=Name#>)){ (" <#= Name #> = <#=preParameter#><#=Name#> , "); (new SqlParameter("<#=preParameter#><#=Name#>",model.<#=Name#>)); }<# }#> <# if(ToCS(me)=="bool") {#> (" <#= Name #> = <#=preParameter#><#=Name#> , "); (new SqlParameter("<#=preParameter#><#=Name#>",model.<#=Name#>)); <# }#> <# if(ToCS(me)=="int"|| ToCS(me)=="long"|| ToCS(me)=="float"|| ToCS(me)=="DateTime"|| ToCS(me)=="decimal") {#> if(model.<#=Name#>!=0){ (" <#= Name #> = <#=preParameter#><#=Name#> , "); (new SqlParameter("<#=preParameter#><#=Name#>",model.<#=Name#>)); } <#}#> <#}#> <# }#> strSql = ( - 2,2); (" where <#= reParameterExpression(, true ,) #> "); <# for(int i=0;i< ;i++) { ColumnInfo key = [i]; #> <# if (aryKey || !tity) {#> (new SqlParameter("<#=preParameter#><#=Name#>",model.<#=Name#>)); <#}#> <# }#> int rows=<#= erName#>.ExecuteSql(ng(),y()); if (rows > 0) { return true; } else { return false; } }现在项⽬中使⽤的:
2023年6月21日发(作者:)
⾃定义动软代码模版编写这⾥使⽤的是动软的模板.这是动软代码⽣成器的⼀个整体界⾯。下⾯做的⽰例是从右边模板管理中的选⼀个模板进⾏修改,这⾥我选了简单三层模板中的模板1<#@ template language="c#"
HostSpecific="True"
#>2<#@ output extension= ".cs"
#>3<# TableHost host = (TableHost)(Host);
4string
DbParaHead=Head;
5string
DbParaDbType=DbType;
6string
preParameter=ameter;
7string
ModelSpace = ace+".Model."+ elClass(ame);
8ColumnInfo identityKey=tyKey;
9string
returnValue = "void";
10if
(identityKey!=null) {
11returnValue = ToCS(me); }#>在模板上右键,编辑查看。就能看到上⾯的代码,这是模板中⾃定义的⼀些变量。1using
System;2using
;3using
ent;4using
c;5using
;6using
DBUtility;7
8namespace
DAL <# if( > 0){ #> .<#= #><# } #>9{ <# if( > 0) {#> //<#= escription #> <# } #>
10 public
partial
class
<#= Class(ame) #>DAO {}上⾯的代码也是模板中我们⾮常熟悉的引⽤,接下来我来说下我今天要修改的内容。UPDATE功能,动软中的update功能是将⼀个实体传进去,全部修改,这⾥我把它修改成,只修改实体中存在的值1///
void
Update(<#= ModelSpace #>Entity model)
5{
6 StringBuilder strSql=new
StringBuilder();
7 List
List
}8先来定义两个变量,因为和实际代码中是⼀样的,所以这⾥只有⼀点,就是<# = ModelSpace#>,这个变量已经在⽂件的开头定义了,就是该模板的空间名+类名。接下来我们需要写⼀个for循环,来判断哪些代码要添加的sql语句中,哪些代码不需要。("update <#= ame #> set ");2<# for(int
i=0;i< ;i++){
3ColumnInfo c = ist[i]; #><# if
(!tity) {#>
4if(!OrEmpty(model.<#=Name#>)){
(" <#= Name #> = <#=preParameter#><#=Name#>6<# if
(i< -1 ) {#>,<#}#> ");}<# }#>7<# }#>这⾥的⼏个变量解释写<#= ame #>tity<#=preParameter#><#=Name#>.表名字段数是否主键@符号列名最后加⼀个条件语句(" where <#= reParameterExpression(, true ,) #> ");现在sql语句写好了,当时发现没有写变量;添加变量⽐较简单。只要在每个判空的条件语句后⾯添加就可以了
<# if (!tity) {#>
if(!OrEmpty(model.<#=Name#>)){ (" <#= Name #> = <#=preParameter#><#=Name#> , "); (new SqlParameter("<#=preParameter#><#=Name#>",model.<#=Name#>)); }<# }#><# }#>
添加之后,会发现所有实体的属性都被⽤OrEmpty()来判断,所以这⾥还要添加⼀个判断属性类型的条件<# if (!tity) {#>
<# if(ToCS(me)=="string") {#>if(!OrEmpty(model.<#=Name#>)){ (" <#= Name #> = <#=preParameter#><#=Name#> , "); (new SqlParameter("<#=preParameter#><#=Name#>",model.<#=Name#>)); }<# }#><# if(ToCS(me)=="int"|| ToCS(me)=="long"|| ToCS(me)=="float"|| ToCS(me)=="DateTime"|| ToCS(me)=="decimal") {#>if(model.<#=Name#>!=0){ (" <#= Name #> = <#=preParameter#><#=Name#> , "); (new SqlParameter("<#=preParameter#><#=Name#>",model.<#=Name#>)); } <#}#><#}#>
上⾯是个例⼦,具体情况具体分析。最后整体的UPDATE代码如下///
<# if(ToCS(me)=="string") {#> if(!OrEmpty(model.<#=Name#>)){ (" <#= Name #> = <#=preParameter#><#=Name#> , "); (new SqlParameter("<#=preParameter#><#=Name#>",model.<#=Name#>)); }<# }#> <# if(ToCS(me)=="bool") {#> (" <#= Name #> = <#=preParameter#><#=Name#> , "); (new SqlParameter("<#=preParameter#><#=Name#>",model.<#=Name#>)); <# }#> <# if(ToCS(me)=="int"|| ToCS(me)=="long"|| ToCS(me)=="float"|| ToCS(me)=="DateTime"|| ToCS(me)=="decimal") {#> if(model.<#=Name#>!=0){ (" <#= Name #> = <#=preParameter#><#=Name#> , "); (new SqlParameter("<#=preParameter#><#=Name#>",model.<#=Name#>)); } <#}#> <#}#> <# }#> strSql = ( - 2,2); (" where <#= reParameterExpression(, true ,) #> "); <# for(int i=0;i< ;i++) { ColumnInfo key = [i]; #> <# if (aryKey || !tity) {#> (new SqlParameter("<#=preParameter#><#=Name#>",model.<#=Name#>)); <#}#> <# }#> int rows=<#= erName#>.ExecuteSql(ng(),y()); if (rows > 0) { return true; } else { return false; } }现在项⽬中使⽤的:
发布评论