Skip to content

Commit 240b020

Browse files
committed
add Placeholder Tag.
1 parent 565ed03 commit 240b020

File tree

8 files changed

+74
-13
lines changed

8 files changed

+74
-13
lines changed

Docs/Schemas/SmartSqlMap.xsd

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,7 @@
7878
<xs:element ref="IsTrue" />
7979
<xs:element ref="IsFalse" />
8080
<xs:element ref="IsProperty" />
81+
<xs:element ref="Placeholder" />
8182
<xs:element ref="Dynamic" />
8283
<xs:element ref="Where" />
8384
<xs:element ref="For" />
@@ -104,6 +105,7 @@
104105
<xs:element ref="IsTrue" />
105106
<xs:element ref="IsFalse" />
106107
<xs:element ref="IsProperty" />
108+
<xs:element ref="Placeholder" />
107109
<xs:element ref="Dynamic" />
108110
<xs:element ref="Where" />
109111
<xs:element ref="For" />
@@ -139,6 +141,7 @@
139141
<xs:element ref="IsTrue" />
140142
<xs:element ref="IsFalse" />
141143
<xs:element ref="IsProperty" />
144+
<xs:element ref="Placeholder" />
142145
<xs:element ref="Dynamic" />
143146
<xs:element ref="Where" />
144147
<xs:element ref="For" />
@@ -166,6 +169,7 @@
166169
<xs:element ref="IsTrue" />
167170
<xs:element ref="IsFalse" />
168171
<xs:element ref="IsProperty" />
172+
<xs:element ref="Placeholder" />
169173
<xs:element ref="Dynamic" />
170174
<xs:element ref="Where" />
171175
<xs:element ref="For" />
@@ -194,6 +198,7 @@
194198
<xs:element ref="IsTrue" />
195199
<xs:element ref="IsFalse" />
196200
<xs:element ref="IsProperty" />
201+
<xs:element ref="Placeholder" />
197202
<xs:element ref="Dynamic" />
198203
<xs:element ref="Where" />
199204
<xs:element ref="For" />
@@ -222,6 +227,7 @@
222227
<xs:element ref="IsTrue" />
223228
<xs:element ref="IsFalse" />
224229
<xs:element ref="IsProperty" />
230+
<xs:element ref="Placeholder" />
225231
<xs:element ref="Dynamic" />
226232
<xs:element ref="Where" />
227233
<xs:element ref="For" />
@@ -250,6 +256,7 @@
250256
<xs:element ref="IsTrue" />
251257
<xs:element ref="IsFalse" />
252258
<xs:element ref="IsProperty" />
259+
<xs:element ref="Placeholder" />
253260
<xs:element ref="Dynamic" />
254261
<xs:element ref="Where" />
255262
<xs:element ref="For" />
@@ -278,6 +285,7 @@
278285
<xs:element ref="IsTrue" />
279286
<xs:element ref="IsFalse" />
280287
<xs:element ref="IsProperty" />
288+
<xs:element ref="Placeholder" />
281289
<xs:element ref="Dynamic" />
282290
<xs:element ref="Where" />
283291
<xs:element ref="For" />
@@ -306,6 +314,7 @@
306314
<xs:element ref="IsTrue" />
307315
<xs:element ref="IsFalse" />
308316
<xs:element ref="IsProperty" />
317+
<xs:element ref="Placeholder" />
309318
<xs:element ref="Dynamic" />
310319
<xs:element ref="Where" />
311320
<xs:element ref="For" />
@@ -334,6 +343,7 @@
334343
<xs:element ref="IsTrue" />
335344
<xs:element ref="IsFalse" />
336345
<xs:element ref="IsProperty" />
346+
<xs:element ref="Placeholder" />
337347
<xs:element ref="Dynamic" />
338348
<xs:element ref="Where" />
339349
<xs:element ref="For" />
@@ -362,6 +372,7 @@
362372
<xs:element ref="IsTrue" />
363373
<xs:element ref="IsFalse" />
364374
<xs:element ref="IsProperty" />
375+
<xs:element ref="Placeholder" />
365376
<xs:element ref="Dynamic" />
366377
<xs:element ref="Where" />
367378
<xs:element ref="For" />
@@ -390,6 +401,7 @@
390401
<xs:element ref="IsTrue" />
391402
<xs:element ref="IsFalse" />
392403
<xs:element ref="IsProperty" />
404+
<xs:element ref="Placeholder" />
393405
<xs:element ref="Dynamic" />
394406
<xs:element ref="Where" />
395407
<xs:element ref="For" />
@@ -417,6 +429,7 @@
417429
<xs:element ref="IsTrue" />
418430
<xs:element ref="IsFalse" />
419431
<xs:element ref="IsProperty" />
432+
<xs:element ref="Placeholder" />
420433
<xs:element ref="Dynamic" />
421434
<xs:element ref="Where" />
422435
<xs:element ref="For" />
@@ -444,6 +457,7 @@
444457
<xs:element ref="IsTrue" />
445458
<xs:element ref="IsFalse" />
446459
<xs:element ref="IsProperty" />
460+
<xs:element ref="Placeholder" />
447461
<xs:element ref="Dynamic" />
448462
<xs:element ref="Where" />
449463
<xs:element ref="For" />
@@ -471,6 +485,7 @@
471485
<xs:element ref="IsTrue" />
472486
<xs:element ref="IsFalse" />
473487
<xs:element ref="IsProperty" />
488+
<xs:element ref="Placeholder" />
474489
<xs:element ref="Dynamic" />
475490
<xs:element ref="Where" />
476491
<xs:element ref="For" />
@@ -480,6 +495,12 @@
480495
<xs:attribute name="Property" type="xs:string" use="required" />
481496
</xs:complexType>
482497
</xs:element>
498+
<xs:element name="Placeholder">
499+
<xs:complexType mixed="true">
500+
<xs:attribute name="Prepend" type="xs:string" use="optional" />
501+
<xs:attribute name="Property" type="xs:string" use="required" />
502+
</xs:complexType>
503+
</xs:element>
483504
<xs:element name="Dynamic">
484505
<xs:complexType mixed="true">
485506
<xs:choice minOccurs="0" maxOccurs="unbounded">
@@ -498,6 +519,7 @@
498519
<xs:element ref="IsTrue" />
499520
<xs:element ref="IsFalse" />
500521
<xs:element ref="IsProperty" />
522+
<xs:element ref="Placeholder" />
501523
<xs:element ref="Dynamic" />
502524
<xs:element ref="Where" />
503525
<xs:element ref="Set" />
@@ -525,6 +547,7 @@
525547
<xs:element ref="IsTrue" />
526548
<xs:element ref="IsFalse" />
527549
<xs:element ref="IsProperty" />
550+
<xs:element ref="Placeholder" />
528551
<xs:element ref="Dynamic" />
529552
<xs:element ref="Where" />
530553
<xs:element ref="For" />
@@ -550,6 +573,7 @@
550573
<xs:element ref="IsTrue" />
551574
<xs:element ref="IsFalse" />
552575
<xs:element ref="IsProperty" />
576+
<xs:element ref="Placeholder" />
553577
<xs:element ref="For" />
554578
<xs:element ref="Env" />
555579
</xs:choice>
@@ -583,6 +607,7 @@
583607
<xs:element ref="IsTrue" />
584608
<xs:element ref="IsFalse" />
585609
<xs:element ref="IsProperty" />
610+
<xs:element ref="Placeholder" />
586611
<xs:element ref="Dynamic" />
587612
<xs:element ref="Where" />
588613
<xs:element ref="Set" />
@@ -611,6 +636,7 @@
611636
<xs:element ref="IsTrue" />
612637
<xs:element ref="IsFalse" />
613638
<xs:element ref="IsProperty" />
639+
<xs:element ref="Placeholder" />
614640
<xs:element ref="Dynamic" />
615641
<xs:element ref="Where" />
616642
<xs:element ref="Set" />

SmartSql.Tests/DataAccess/DataAccess_Test.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ public void Insert()
2525
[Fact]
2626
public void Delete()
2727
{
28-
var exeNum = dao.Delete<long>(230151);
28+
var exeNum = dao.Delete(230151);
2929

3030
}
3131

@@ -42,14 +42,14 @@ public void Update()
4242
[Fact]
4343
public void GetList()
4444
{
45-
var list = dao.GetList<T_Test>(null);
45+
var list = dao.GetList(null);
4646
Assert.NotNull(list);
4747
}
4848

4949
[Fact]
5050
public void GetListByPage()
5151
{
52-
var list = dao.GetListByPage<T_Test>(new { PageIndex = 1, PageSize = 10 });
52+
var list = dao.GetListByPage(new { PageIndex = 1, PageSize = 10 });
5353
Assert.NotNull(list);
5454
}
5555
[Fact]
@@ -62,7 +62,7 @@ public void GetRecord()
6262
[Fact]
6363
public void GetEntity()
6464
{
65-
var entity = dao.GetEntity<long>(240162);
65+
var entity = dao.GetEntity(240162);
6666
// Assert.NotNull(entity);
6767
}
6868
}

SmartSql.Tests/Maps/T_Test.xml

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -63,14 +63,11 @@
6363
</Statement>
6464
<!--新增-->
6565
<Statement Id="Insert">
66-
INSERT INTO T_Test
66+
INSERT INTO <Placeholder Property="TableName"/>
6767
(Name)
6868
VALUES
6969
(@Name)
7070
;Select Scope_Identity();
71-
<Dynamic>
72-
73-
</Dynamic>
7471
</Statement>
7572

7673
<!--删除-->

SmartSql.Tests/SmartSqlMapper/SmartSqlMapper_Test.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ public void Insert()
2626
{
2727
Scope = "T_Test",
2828
SqlId = "Insert",
29-
Request = new T_Test { Name = $"Name-{preId}" }
29+
Request = new { Name = $"Name-{preId}", TableName = "T_Test1" }
3030
});
3131
}
3232
Assert.Equal<int>(i, insertNum);

SmartSql/SmartSql.csproj

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,11 +10,11 @@
1010
<PackageProjectUrl>https://github.com/Ahoo-Wang/SmartSql</PackageProjectUrl>
1111
<RepositoryUrl>https://github.com/Ahoo-Wang/SmartSql</RepositoryUrl>
1212
<PackageRequireLicenseAcceptance>False</PackageRequireLicenseAcceptance>
13-
<Version>2.2.2</Version>
14-
<AssemblyVersion>2.2.2</AssemblyVersion>
15-
<FileVersion>2.2.2</FileVersion>
13+
<Version>2.2.6</Version>
14+
<AssemblyVersion>2.2.6</AssemblyVersion>
15+
<FileVersion>2.2.6</FileVersion>
1616
<PackageTags>orm dapper sql read-write-separation cache redis dotnet-core cross-platform high-performance distributed-computing zookeeper</PackageTags>
17-
<PackageReleaseNotes>add Set Tag.</PackageReleaseNotes>
17+
<PackageReleaseNotes>add Placeholder Tag.</PackageReleaseNotes>
1818
</PropertyGroup>
1919
<ItemGroup Condition=" '$(TargetFramework)' == 'net46' ">
2020
<PackageReference Include="Dapper" Version="1.50.2" />

SmartSql/SqlMap/Statement.cs

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -236,6 +236,16 @@ public static ITag LoadTag(XmlNode xmlNode, IList<Include> includes)
236236
};
237237
break;
238238
}
239+
case "Placeholder":
240+
{
241+
tag = new Placeholder
242+
{
243+
Prepend = prepend,
244+
Property = property,
245+
ChildTags = new List<ITag>()
246+
};
247+
break;
248+
}
239249
case "Switch":
240250
{
241251
tag = new Switch

SmartSql/SqlMap/Tags/ITag.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ public enum TagType
2727
IsTrue,
2828
IsFalse,
2929
IsProperty,
30+
Placeholder,
3031
Include,
3132
Switch,
3233
SwitchCase,
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
using System;
2+
using System.Collections.Generic;
3+
using System.Text;
4+
using SmartSql.Abstractions;
5+
6+
namespace SmartSql.SqlMap.Tags
7+
{
8+
public class Placeholder : Tag
9+
{
10+
public override TagType Type => TagType.Placeholder;
11+
public override string BuildSql(RequestContext context)
12+
{
13+
if (IsCondition(context))
14+
{
15+
Object reqVal = GetPropertyValue(context);
16+
return $" {Prepend}{reqVal.ToString()}";
17+
}
18+
return String.Empty;
19+
}
20+
21+
public override bool IsCondition(RequestContext context)
22+
{
23+
if (context.RequestParameters == null) { return false; }
24+
return context.RequestParameters.ContainsKey(Property);
25+
}
26+
}
27+
}

0 commit comments

Comments
 (0)