Skip to content

Commit 55421b6

Browse files
author
lianggx
committed
1.1.1
1 parent 658d049 commit 55421b6

26 files changed

+805
-316
lines changed

.gitignore

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,3 +30,7 @@
3030
/MyStaging/bin/Debug/netstandard2.0
3131
/MyStaging/bin/Debug/MyStaging.1.0.1.nupkg
3232
*.nupkg
33+
/WebApplication1/bin/Debug/netcoreapp2.2
34+
/WebApplication1/obj/Debug/netcoreapp2.2
35+
/WebApplication1/obj
36+
/.vs/config

.vs/MyStaging/v15/.suo

37.5 KB
Binary file not shown.

MyStaging.App/DAL/EnumsDal.cs

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -69,17 +69,19 @@ public static void GenerateMapping(List<EnumTypeInfo> list)
6969
{
7070
writer.WriteLine($"using {projectName}.Model;");
7171
writer.WriteLine("using System;");
72+
writer.WriteLine("using Npgsql;");
7273
writer.WriteLine("using Microsoft.Extensions.Logging;");
7374
writer.WriteLine("using MyStaging.Helpers;");
74-
writer.WriteLine("using Npgsql;");
75+
writer.WriteLine("using MyStaging.Common;");
76+
writer.WriteLine("using Microsoft.Extensions.Caching.Distributed;");
7577
writer.WriteLine();
7678
writer.WriteLine($"namespace {projectName}");
7779
writer.WriteLine("{");
7880
writer.WriteLine("\tpublic class _startup");
7981
writer.WriteLine("\t{");
80-
writer.WriteLine("\t\tpublic static void Init(ILogger logger, string connectionMaster, string[] connectionSlaves = null, int slavesMaxPool = -1)");
82+
writer.WriteLine("\t\tpublic static void Init(StagingOptions options)");
8183
writer.WriteLine("\t\t{");
82-
writer.WriteLine("\t\t\tPgSqlHelper.InitConnection(logger, connectionMaster, connectionSlaves, slavesMaxPool);");
84+
writer.WriteLine("\t\t\tPgSqlHelper.InitConnection(options);");
8385

8486
if (list.Count > 0)
8587
{

MyStaging.App/DAL/TablesDal.cs

Lines changed: 21 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,7 @@ public void CreateModel()
6060
writer.WriteLine("using Newtonsoft.Json.Linq;");
6161
writer.WriteLine("using MyStaging.Mapping;");
6262
writer.WriteLine("using NpgsqlTypes;");
63+
writer.WriteLine("using MyStaging.Helpers;");
6364
writer.WriteLine();
6465
writer.WriteLine($"namespace {projectName}.Model");
6566
writer.WriteLine("{");
@@ -75,6 +76,9 @@ public void CreateModel()
7576
writer.WriteLine($"\t\t/// {item.Comment}");
7677
writer.WriteLine("\t\t/// </summary>");
7778
}
79+
if (pkList.Count(f => f.Field == item.Field) > 0)
80+
writer.WriteLine($"\t\t[PrimaryKey]");
81+
7882
string _type = item.RelType == "char" || item.RelType == "char?" ? "string" : item.RelType;
7983
writer.WriteLine($"\t\tpublic {_type} {item.Field.ToUpperPascal()} {{ get; set; }}");
8084
writer.WriteLine();
@@ -101,16 +105,21 @@ public void CreateModel()
101105
ht.Add(propertyName, "");
102106
}
103107

108+
List<string> cacheKey = new List<string>();
104109
List<string> d_key = new List<string>();
105110
foreach (var item in pkList)
106111
{
107112
FieldInfo fs = fieldList.FirstOrDefault(f => f.Field == item.Field);
108113
d_key.Add("this." + fs.Field.ToUpperPascal());
114+
var tostring = fs.CsType == "string" ? "" : ".ToString()";
115+
cacheKey.Add($"this.{fs.Field.ToUpperPascal()}{tostring}");
109116
}
117+
110118
string dalName = CreateName();
111119
string updateName = $"{dalPath}{dalName}.{dalName}UpdateBuilder";
112120
string dkString = d_key.Count > 0 ? $", { string.Join(",", d_key)}" : "";
113-
writer.WriteLine($"\t\t[NonDbColumnMapping, JsonIgnore] public {updateName} UpdateBuilder {{ get {{ return new {updateName}(model =>{{MyStaging.Helpers.MyStagingUtils.CopyProperty<{_classname}>(this, model);}}{dkString}); }} }}");
121+
string cacheString = cacheKey.Count > 0 ? $"{ string.Join(" + \"\" + ", cacheKey)}" : "";
122+
writer.WriteLine($"\t\t[NonDbColumnMapping, JsonIgnore] public {updateName} UpdateBuilder {{ get {{ return new {updateName}(model =>{{MyStaging.Helpers.MyStagingUtils.CopyProperty<{_classname}>(this, model); PgSqlHelper.CacheManager?.RemoveItemCache<{_classname}>({cacheString}); }}{dkString}); }} }}");
114123
writer.WriteLine();
115124
writer.WriteLine($"\t\tpublic {_classname} Insert() {{ return {dalPath}{dalName}.Insert(this); }}");
116125
writer.WriteLine();
@@ -376,14 +385,23 @@ protected void Delete_Generator(StreamWriter writer, string class_model, string
376385
{
377386
List<string> d_key = new List<string>();
378387
List<string> d_key_param = new List<string>();
388+
List<string> cacheKey = new List<string>();
379389
foreach (var item in pkList)
380390
{
381391
FieldInfo fs = fieldList.FirstOrDefault(f => f.Field == item.Field);
382392
d_key.Add(fs.RelType + " " + fs.Field);
383393
d_key_param.Add("f." + fs.Field.ToUpperPascal() + " == " + fs.Field);
384-
}
385394

386-
writer.WriteLine($"\t\tpublic static int Delete({string.Join(",", d_key)}) => DeleteBuilder.Where(f => {string.Join(" && ", d_key_param)}).SaveChange();");
395+
var tostring = fs.CsType == "string" ? "" : ".ToString()";
396+
cacheKey.Add($"{fs.Field}{tostring}");
397+
}
398+
string cacheString = cacheKey.Count > 0 ? $"{ string.Join(" + \"\" + ", cacheKey)}" : "";
399+
writer.WriteLine($"\t\tpublic static int Delete({string.Join(",", d_key)})");
400+
writer.WriteLine("\t\t{");
401+
writer.WriteLine($"\t\t\tvar affrows = DeleteBuilder.Where(f => {string.Join(" && ", d_key_param)}).SaveChange();");
402+
writer.WriteLine($"\t\t\tif (affrows > 0) PgSqlHelper.CacheManager?.RemoveItemCache<{class_model}>({cacheString});");
403+
writer.WriteLine("\t\t\treturn affrows;");
404+
writer.WriteLine("\t\t\t}");
387405
}
388406
}
389407

MyStaging.App/MyStaging.App.csproj

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,9 @@
66
<AssemblyName>MyStaging.App</AssemblyName>
77
<ApplicationIcon />
88
<StartupObject></StartupObject>
9-
<Version>1.0.1</Version>
9+
<Version>1.1</Version>
10+
<AssemblyVersion>1.1.0.0</AssemblyVersion>
11+
<FileVersion>1.1.0.0</FileVersion>
1012
</PropertyGroup>
1113

1214
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">

MyStaging.App/Program.cs

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -46,10 +46,18 @@ static void Main(string[] args)
4646
}
4747
i++;
4848
}
49-
//outPutPath = @"D:\TestProjects\mystaging";
49+
//outPutPath = @"D:\MyGitHub\mystaging";
5050
//projName = "MyStaging.xUnitTest";
51-
//PgSqlHelper.InitConnection(null, "Host=127.0.0.1;Port=5432;Username=postgres;Password=postgres;Database=mystaging;Pooling=true;Maximum Pool Size=100");
52-
PgSqlHelper.InitConnection(null, connection.ToString());
51+
//MyStaging.Common.StagingOptions options = new Common.StagingOptions()
52+
//{
53+
// ConnectionMaster = "Host=127.0.0.1;Port=5432;Username=postgres;Password=postgres;Database=mystaging;Pooling=true;Maximum Pool Size=100"
54+
//};
55+
// PgSqlHelper.InitConnection(options);
56+
var options = new Common.StagingOptions()
57+
{
58+
ConnectionMaster = connection.ToString()
59+
};
60+
PgSqlHelper.InitConnection(options);
5361
GeneralFactory.Build(outPutPath, projName);
5462

5563
Console.WriteLine("success.....");

MyStaging.App/build.bat

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
dotnet MyStaging.App.dll -h 127.0.0.1 -p 5432 -u postgres -a postgres -d mystaging -pool 50 -o D:\TestProjects\mystaging -proj MyStaging.xUnitTest
1+
dotnet MyStaging.App.dll -h 127.0.0.1 -p 5432 -u postgres -a postgres -d mystaging -pool 50 -o D:\MyGitHub\mystaging -proj MyStaging.xUnitTest

MyStaging.xUnitTest.db/DAL/Build/Article.cs

Lines changed: 66 additions & 61 deletions
Original file line numberDiff line numberDiff line change
@@ -13,73 +13,78 @@
1313

1414
namespace MyStaging.xUnitTest.DAL
1515
{
16-
public partial class Article : QueryContext<ArticleModel>
17-
{
18-
public static Article Context { get { return new Article(); } }
16+
public partial class Article : QueryContext<ArticleModel>
17+
{
18+
public static Article Context { get { return new Article(); } }
1919

20-
public static InsertBuilder<ArticleModel> InsertBuilder => new InsertBuilder<ArticleModel>(ArticleSchema.Instance);
21-
public static ArticleModel Insert(ArticleModel model) => InsertBuilder.Insert(model);
22-
public static int InsertRange(List<ArticleModel> models) => InsertBuilder.InsertRange(models).SaveChange();
20+
public static InsertBuilder<ArticleModel> InsertBuilder => new InsertBuilder<ArticleModel>(ArticleSchema.Instance);
21+
public static ArticleModel Insert(ArticleModel model) => InsertBuilder.Insert(model);
22+
public static int InsertRange(List<ArticleModel> models) => InsertBuilder.InsertRange(models).SaveChange();
2323

24-
public static DeleteBuilder<ArticleModel> DeleteBuilder => new DeleteBuilder<ArticleModel>();
25-
public static int Delete(string id,string userid) => DeleteBuilder.Where(f => f.Id == id && f.Userid == userid).SaveChange();
24+
public static DeleteBuilder<ArticleModel> DeleteBuilder => new DeleteBuilder<ArticleModel>();
25+
public static int Delete(string id, string userid)
26+
{
27+
var affrows = DeleteBuilder.Where(f => f.Id == id && f.Userid == userid).SaveChange();
28+
if (affrows > 0) Helpers.PgSqlHelper.CacheManager?.RemoveItemCache<ArticleModel>(id);
29+
return affrows;
30+
}
2631

27-
public static ArticleUpdateBuilder UpdateBuilder => new ArticleUpdateBuilder();
28-
public static ArticleUpdateBuilder Update(string id,string userid)
29-
{
30-
return new ArticleUpdateBuilder(null, id,userid);
31-
}
32+
public static ArticleUpdateBuilder UpdateBuilder => new ArticleUpdateBuilder();
33+
public static ArticleUpdateBuilder Update(string id, string userid)
34+
{
35+
return new ArticleUpdateBuilder(null, id, userid);
36+
}
3237

33-
public class ArticleUpdateBuilder : UpdateBuilder<ArticleModel>
34-
{
35-
public ArticleUpdateBuilder(string id,string userid)
36-
{
37-
base.Where(f => f.Id == id && f.Userid == userid);
38-
}
38+
public class ArticleUpdateBuilder : UpdateBuilder<ArticleModel>
39+
{
40+
public ArticleUpdateBuilder(string id, string userid)
41+
{
42+
base.Where(f => f.Id == id && f.Userid == userid);
43+
}
3944

40-
public ArticleUpdateBuilder(Action<ArticleModel> onChanged, string id,string userid) : base(onChanged)
41-
{
42-
base.Where(f => f.Id == id && f.Userid == userid);
43-
}
45+
public ArticleUpdateBuilder(Action<ArticleModel> onChanged, string id, string userid) : base(onChanged)
46+
{
47+
base.Where(f => f.Id == id && f.Userid == userid);
48+
}
4449

45-
public ArticleUpdateBuilder() { }
50+
public ArticleUpdateBuilder() { }
4651

47-
public new ArticleUpdateBuilder Where(Expression<Func<ArticleModel, bool>> predicate)
48-
{
49-
base.Where(predicate);
50-
return this;
51-
}
52-
public new ArticleUpdateBuilder Where(string formatCommad, params object[] pValue)
53-
{
54-
base.Where(formatCommad,pValue);
55-
return this;
56-
}
57-
public ArticleUpdateBuilder SetId(string id)
58-
{
59-
base.SetField("id", NpgsqlDbType.Varchar, id, -1, null);
60-
return this;
61-
}
62-
public ArticleUpdateBuilder SetUserid(string userid)
63-
{
64-
base.SetField("userid", NpgsqlDbType.Varchar, userid, -1, null);
65-
return this;
66-
}
67-
public ArticleUpdateBuilder SetTitle(string title)
68-
{
69-
base.SetField("title", NpgsqlDbType.Varchar, title, 255, null);
70-
return this;
71-
}
72-
public ArticleUpdateBuilder SetContent(JToken content)
73-
{
74-
base.SetField("content", NpgsqlDbType.Jsonb, content, -1, null);
75-
return this;
76-
}
77-
public ArticleUpdateBuilder SetCreatetime(DateTime createtime)
78-
{
79-
base.SetField("createtime", NpgsqlDbType.Timestamp, createtime, 8, null);
80-
return this;
81-
}
82-
}
52+
public new ArticleUpdateBuilder Where(Expression<Func<ArticleModel, bool>> predicate)
53+
{
54+
base.Where(predicate);
55+
return this;
56+
}
57+
public new ArticleUpdateBuilder Where(string formatCommad, params object[] pValue)
58+
{
59+
base.Where(formatCommad, pValue);
60+
return this;
61+
}
62+
public ArticleUpdateBuilder SetId(string id)
63+
{
64+
base.SetField("id", NpgsqlDbType.Varchar, id, -1, null);
65+
return this;
66+
}
67+
public ArticleUpdateBuilder SetUserid(string userid)
68+
{
69+
base.SetField("userid", NpgsqlDbType.Varchar, userid, -1, null);
70+
return this;
71+
}
72+
public ArticleUpdateBuilder SetTitle(string title)
73+
{
74+
base.SetField("title", NpgsqlDbType.Varchar, title, 255, null);
75+
return this;
76+
}
77+
public ArticleUpdateBuilder SetContent(JToken content)
78+
{
79+
base.SetField("content", NpgsqlDbType.Jsonb, content, -1, null);
80+
return this;
81+
}
82+
public ArticleUpdateBuilder SetCreatetime(DateTime createtime)
83+
{
84+
base.SetField("createtime", NpgsqlDbType.Timestamp, createtime, 8, null);
85+
return this;
86+
}
87+
}
8388

84-
}
89+
}
8590
}

0 commit comments

Comments
 (0)