CodeSmith三层模板代码C#版Word文档格式.docx
- 文档编号:19899304
- 上传时间:2023-01-12
- 格式:DOCX
- 页数:37
- 大小:26KB
CodeSmith三层模板代码C#版Word文档格式.docx
《CodeSmith三层模板代码C#版Word文档格式.docx》由会员分享,可在线阅读,更多相关《CodeSmith三层模板代码C#版Word文档格式.docx(37页珍藏版)》请在冰豆网上搜索。
String"
Default="
Model"
Category="
内容"
Description="
命名空间名称"
%>
SourceTable"
SchemaExplorer.TableSchema"
数据源表"
ObjectName"
注释"
对象名称,为生成注释而用"
%@AssemblyName="
System.Data"
SchemaExplorer"
%@ImportNamespace="
usingSystem;
usingSystem.Collections.Generic;
usingSystem.Text;
namespace<
%=Namespace%>
{
///<
summary>
%=ObjectName%>
的模型
/summary>
[Serializable()]
publicclass<
%=GetModelName()%>
{
private<
%=GetPrimaryKeyType()%>
<
%=GetPrimaryKeyFieldName()%>
;
<
%
foreach(ColumnSchemacoluminSourceTable.NonPrimaryKeyColumns)
{
%>
%=GetDataTypeByColumn(colum)%>
%=GetFieldNameByColumn(colum)%>
}
public<
%=GetModelName()%>
(){}
%=GetPrimaryKeyPropertyName()%>
{
get{return<
}
set{<
=value;
}
%=GetPropertyNameByColumn(colum)%>
}
scriptrunat="
template"
>
publicstringGetClassName()
stringtempTable;
if(SourceTable.Name.EndsWith("
s"
))
tempTable=SourceTable.Name.Substring(0,SourceTable.Name.Length-1);
else
tempTable=SourceTable.Name;
returntempTable;
publicstringGetModelName()
returnConvertToPascal(GetClassName());
publicstringGetPrimaryKeyType()
if(SourceTable.PrimaryKey!
=null)
if(SourceTable.PrimaryKey.MemberColumns.Count==1)
returnGetCSharpDataTypeByDBColumn(SourceTable.PrimaryKey.MemberColumns[0]);
else
thrownewApplicationException("
此模板只支持单个列的主键"
);
thrownewApplicationException("
此模板需要有主键的表"
publicstringGetPrimaryKeyName()
returnConvertToCamel(SourceTable.PrimaryKey.MemberColumns[0].Name);
publicstringGetPrimaryKeyFieldName()
returnConvertToCamel(GetPrimaryKeyName());
publicstringGetPrimaryKeyPropertyName()
returnConvertToPascal(GetPrimaryKeyName());
publicstringGetDataTypeByColumn(ColumnSchemacolumn)
returnGetCSharpDataTypeByDBColumn(column);
publicstringGetFieldNameByColumn(ColumnSchemacolumn)
returnConvertToCamel(column.Name);
publicstringGetPropertyNameByColumn(ColumnSchemacolumn)
returnConvertToPascal(column.Name);
publicstringGetCSharpDataTypeByDBColumn(ColumnSchemacolumn)
switch(column.DataType)
caseDbType.AnsiString:
return"
string"
caseDbType.AnsiStringFixedLength:
caseDbType.Binary:
byte[]"
caseDbType.Boolean:
bool"
caseDbType.Byte:
byte"
caseDbType.Currency:
decimal"
caseDbType.Date:
DateTime"
caseDbType.DateTime:
caseDbType.Decimal:
caseDbType.Double:
double"
caseDbType.Guid:
Guid"
caseDbType.Int16:
short"
caseDbType.Int32:
int"
caseDbType.Int64:
long"
caseDbType.Object:
object"
caseDbType.SByte:
sbyte"
caseDbType.Single:
float"
caseDbType.String:
caseDbType.StringFixedLength:
caseDbType.Time:
TimeSpan"
caseDbType.UInt16:
ushort"
caseDbType.UInt32:
uint"
caseDbType.UInt64:
ulong"
caseDbType.VarNumeric:
default:
return"
__UNKNOWN__"
+column.NativeType;
publicstringConvertToPascal(stringstr)
returnstr.Substring(0,1).ToUpper()+str.Substring
(1);
publicstringConvertToCamel(stringstr)
returnstr.Substring(0,1).ToLower()+str.Substring
(1);
publicoverridestringGetFileName()
returnGetModelName()+"
.cs"
/script>
二、数据访问层
数据访问层(SQLServerDAL)
数据访问层代码生成模版
SQLServerDAL"
usingSystem.Data;
usingSystem.Data.SqlClient;
usingNCL.Data;
usingModel;
的数据访问操作类
Service
///<
///添加<
paramname="
%=GetModelParameterName()%>
"
/param>
returns>
最新编号<
/returns>
publicstaticintAdd<
(<
)
stringsql=<
%=GetInsertSql()%>
SqlParameter[]pas=newSqlParameter[]
{
<
for(inti=0;
i<
SourceTable.NonPrimaryKeyColumns.Count;
i++)
{
ColumnSchemacolumn=SourceTable.NonPrimaryKeyColumns[i];
%>
newSqlParameter("
@<
%=column.Name%>
SqlDbType.<
%=GetSqlDbType(column)%>
<
%=column.Size%>
)<
%=(i==(SourceTable.NonPrimaryKeyColumns.Count-1)?
"
:
"
)%>
}
};
inti=0;
<
for(inti=0;
%>
pas[i++].Value=<
.<
%=SourceTable.NonPrimaryKeyColumns[i].Name%>
}
returnConvert.ToInt32(SqlHelper.ExecuteScalar(sql,pas));
///更新<
bool<
publicstaticboolUpdate<
%=GetUpdateSql()%>
),
%=GetPrimaryKeyName()%>
%=GetSqlDbType(GetPrimaryKeyColumn())%>
%=GetPrimaryKeySize()%>
=SourceTable.NonPrimaryKeyColumns.Count;
if(i<
SourceTable.NonPrimaryKeyColumns.Count)
{
}
else
introws=SqlHelper.ExecuteNonQuery(sql,pas);
return(rows==1);
}
///根据Id删除<
Id<
publicstaticboolDelete<
By<
stringsql="
DELETEFROM<
%=SourceTable.Name%>
WHERE<
=@<
SqlParameterpa=newSqlParameter("
%=GetPrimaryKeySqlDbType()%>
pa.Value=<
introws=SqlHelper.ExecuteNonQuery(sql,pa);
///根据Id查询<
对象<
publicstatic<
Get<
%=GetSelectOneModelSql()%>
returnGetSingle<
BySql(sql,pa);
///获得所有<
集合<
publicstaticIList<
GetAll<
s()
%=GetSelectAllModelSql()%>
returnGet<
sBySql(sql);
///根据Sql获得单个<
%=GetModelName()%
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- CodeSmith 三层 模板 代码 C#