1+ @using RazorLight
2+ @using SmartCode
3+ @using SmartCode .Db
4+ @using SmartCode .CLI
5+ @inherits TemplatePage <BuildContext >
6+ @{
7+ DisableEncoding = true ;
8+ var project = Model .Project ;
9+ var dbSource = Model .GetDataSource <DbSource >();
10+ var buildTask = Model .Build ;
11+ var table = Model .GetCurrentTable ();
12+ var pkCol = table .PKColumn ;
13+ if (pkCol == null )
14+ {
15+ throw new SmartCodeException ($" {table .Name } can not find PKColumn!" );
16+ }
17+ var primaryKeyType = pkCol ? .LanguageType ?? " int" ;
18+ var autoIncrement = table .AutoIncrement ;
19+ var prefix = dbSource .DbProvider .ParameterPrefix ;
20+ var notEqCols = table .Columns .Where (m => m .ConvertedName != m .Name );
21+ var resultMapName = $" {table .ConvertedName }ResultMap" ;
22+ var queryStatementResultMap = table .HasColNameNotEqConvertedName ? " " : $" ResultMap=\" {resultMapName }\" " ;
23+ }
24+ <?xml version =" 1.0" encoding =" utf-8" ?>
25+ <!--
26+ @{await IncludeAsync("Copyright.cshtml", Model);}
27+ -->
28+ <SmartSqlMap Scope =" @table.ConvertedName" xmlns =" http://SmartSql.net/schemas/SmartSqlMap.xsd" >
29+ @if (table .HasColNameNotEqConvertedName )
30+ {
31+ <ResultMaps >
32+ <ResultMap Id =" @resultMapName" >
33+ @foreach ( var col in notEqCols )
34+ {
35+ <Result Column =" @col.Name" Property =" @col.ConvertedName" />
36+ }
37+ </ResultMap >
38+ </ResultMaps >
39+ }
40+ <Statements >
41+ <Statement Id =" QueryParams" >
42+ <Where >
43+ </Where >
44+ </Statement >
45+ <!-- 新增-->
46+ <Statement Id =" Insert" >
47+ INSERT INTO @table.Name
48+ (
49+ @for ( var i = 0 ; i < table .Columns .Count (); i ++ )
50+ {
51+ var col = table .Columns .ElementAt (i );
52+ @if (! col .AutoIncrement )
53+ {
54+ @this.PadLeft(i > 1 ? 0 : 6 )@col.Name @( i == table .Columns .Count () - 1 ? " \r\n " : " \r\n " + this .PadLeft (6 ) + " ," )
55+ }
56+ }
57+ )
58+ VALUES
59+ (
60+ @for ( var i = 0 ; i < table .Columns .Count (); i ++ )
61+ {
62+ var col = table .Columns .ElementAt (i );
63+ @if (! col .AutoIncrement )
64+ {
65+ @this.PadLeft(i > 1 ? 0 : 6 )
@[email protected] @( i == table .
Columns .
Count ()
- 1 ? " \r\n " : " \r\n " + this .
PadLeft (
6 )
+ " ," ) 66+ }
67+ }
68+ );
69+ </Statement >
70+
71+ <!-- 删除-->
72+ <Statement Id =" Delete" >
73+ Delete @table.Name
74+ Where @pkCol.Name =@pkCol.ConvertedName
75+ </Statement >
76+
77+
78+ <!-- 更新-->
79+ <Statement Id =" Update" >
80+ UPDATE @table.Name
81+ SET
82+ <Dynamic >
83+ @foreach ( var col in table .Columns )
84+ {
85+ if (col .IsPrimaryKey ) { continue ; }
86+ <IsProperty Prepend =" ," Property =" @col.ConvertedName" >
87+ @col.Name = @(prefix )@col .ConvertedName
88+ < / IsProperty >
89+ }
90+ </Dynamic >
91+ Where
@pkCol.Name =
@[email protected] 92+ </Statement >
93+
94+ <!-- 获取数据列-->
95+ <Statement Id =" Query" @queryStatementResultMap >
96+ SELECT T.* From @table.Name T
97+ <Include RefId =" QueryParams" />
98+ Order By T.@pkCol.Name Desc
99+ </Statement >
100+
101+ <!-- 获取分页数据-->
102+ <Statement Id =" QueryByPage" @queryStatementResultMap >
103+ Select T.* From @table.Name As T
104+ <Include RefId =" QueryParams" />
105+ <Switch Prepend =" Order By" Property =" OrderBy" >
106+ <Default >
107+ T.@pkCol.Name Desc
108+ </Default >
109+ </Switch >
110+ Limit @( " @PageSize" ) Offset @( " @Offset" )
111+ </Statement >
112+
113+ <!-- 获取记录数-->
114+ <Statement Id =" GetRecord" >
115+ Select Count(1) From @table.Name T
116+ <Include RefId =" QueryParams" />
117+ </Statement >
118+
119+ <!-- 获取表映射实体-->
120+ <Statement Id =" GetEntity" @queryStatementResultMap >
121+ Select Top 1 T.* From @table.Name T
122+ <Where >
123+ <IsNotEmpty Prepend =" And" Property =" @pkCol.ConvertedName" >
124+ 125+ </IsNotEmpty >
126+ </Where >
127+ </Statement >
128+
129+ <!-- 是否存在该记录-->
130+ <Statement Id =" IsExist" >
131+ Select Count(1) From @table.Name T
132+ <Include RefId =" QueryParams" />
133+ </Statement >
134+ </Statements >
135+ </SmartSqlMap >
0 commit comments