Skip to content

Commit a188ffd

Browse files
committed
1、移除 Newtonsoft.Json 的引用,使用 System.Text.Json
2、优化读取性能 3、增加测试用例
1 parent a75ab2d commit a188ffd

32 files changed

+388
-389
lines changed

examples/Mysql/Model/Article.cs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
11
using System;
22
using System.Linq;
3-
using Newtonsoft.Json;
4-
using Newtonsoft.Json.Linq;
53
using MySql.Data.Types;
64
using System.ComponentModel.DataAnnotations.Schema;
75
using System.ComponentModel.DataAnnotations;

examples/Mysql/Model/M_type.cs

Lines changed: 53 additions & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -1,64 +1,63 @@
11
using System;
22
using System.Linq;
3-
using Newtonsoft.Json;
4-
using Newtonsoft.Json.Linq;
53
using MySql.Data.Types;
64
using System.ComponentModel.DataAnnotations.Schema;
75
using System.ComponentModel.DataAnnotations;
86
using MyStaging.DataAnnotations;
7+
using System.Text.Json;
98

109
namespace Mysql.Model
1110
{
12-
[Table(name: "m_type", Schema = "mystaging")]
13-
public partial class M_type
14-
{
15-
[PrimaryKey]
16-
public sbyte t1 { get; set; }
17-
public short t2 { get; set; }
18-
[Column(TypeName = "mediumint(9)")]
19-
public int? t3 { get; set; }
20-
public int? t4 { get; set; }
21-
public int? t5 { get; set; }
22-
public long? t6 { get; set; }
23-
public long? t7 { get; set; }
24-
public double? t8 { get; set; }
25-
public double? t9 { get; set; }
26-
public float? t10 { get; set; }
27-
[Column(TypeName = "decimal(10,2)")]
28-
public decimal? t11 { get; set; }
29-
public decimal? t12 { get; set; }
30-
public string t13 { get; set; }
31-
public string t14 { get; set; }
32-
[Column(TypeName = "date")]
33-
public DateTime? t15 { get; set; }
34-
public TimeSpan? t16 { get; set; }
35-
[Column(TypeName = "year(4)")]
36-
public DateTime? t17 { get; set; }
37-
public DateTime t18 { get; set; }
38-
public DateTime? t19 { get; set; }
39-
[Column(TypeName = "tinyblob")]
40-
public byte[] t20 { get; set; }
41-
[Column(TypeName = "blob")]
42-
public byte[] t21 { get; set; }
43-
[Column(TypeName = "mediumblob")]
44-
public byte[] t22 { get; set; }
45-
[Column(TypeName = "longblob")]
46-
public byte[] t23 { get; set; }
47-
[Column(TypeName = "tinytext")]
48-
public string t24 { get; set; }
49-
[Column(TypeName = "text")]
50-
public string t25 { get; set; }
51-
[Column(TypeName = "mediumtext")]
52-
public string t26 { get; set; }
53-
[Column(TypeName = "enum('')")]
54-
public string t27 { get; set; }
55-
public long? t29 { get; set; }
56-
[Column(TypeName = "varbinary(255)")]
57-
public byte[] t30 { get; set; }
58-
public JToken t39 { get; set; }
59-
[Column(TypeName = "tinyint(1)")]
60-
public bool? T40 { get; set; }
61-
[Column(TypeName = "char(36)")]
62-
public Guid? t41 { get; set; }
63-
}
11+
[Table(name: "m_type", Schema = "mystaging")]
12+
public partial class M_type
13+
{
14+
[PrimaryKey]
15+
public sbyte t1 { get; set; }
16+
public short t2 { get; set; }
17+
[Column(TypeName = "mediumint(9)")]
18+
public int? t3 { get; set; }
19+
public int? t4 { get; set; }
20+
public int? t5 { get; set; }
21+
public long? t6 { get; set; }
22+
public long? t7 { get; set; }
23+
public double? t8 { get; set; }
24+
public double? t9 { get; set; }
25+
public float? t10 { get; set; }
26+
[Column(TypeName = "decimal(10,2)")]
27+
public decimal? t11 { get; set; }
28+
public decimal? t12 { get; set; }
29+
public string t13 { get; set; }
30+
public string t14 { get; set; }
31+
[Column(TypeName = "date")]
32+
public DateTime? t15 { get; set; }
33+
public TimeSpan? t16 { get; set; }
34+
[Column(TypeName = "year(4)")]
35+
public DateTime? t17 { get; set; }
36+
public DateTime t18 { get; set; }
37+
public DateTime? t19 { get; set; }
38+
[Column(TypeName = "tinyblob")]
39+
public byte[] t20 { get; set; }
40+
[Column(TypeName = "blob")]
41+
public byte[] t21 { get; set; }
42+
[Column(TypeName = "mediumblob")]
43+
public byte[] t22 { get; set; }
44+
[Column(TypeName = "longblob")]
45+
public byte[] t23 { get; set; }
46+
[Column(TypeName = "tinytext")]
47+
public string t24 { get; set; }
48+
[Column(TypeName = "text")]
49+
public string t25 { get; set; }
50+
[Column(TypeName = "mediumtext")]
51+
public string t26 { get; set; }
52+
[Column(TypeName = "enum('')")]
53+
public string t27 { get; set; }
54+
public long? t29 { get; set; }
55+
[Column(TypeName = "varbinary(255)")]
56+
public byte[] t30 { get; set; }
57+
public JsonElement t39 { get; set; }
58+
[Column(TypeName = "tinyint(1)")]
59+
public bool? T40 { get; set; }
60+
[Column(TypeName = "char(36)")]
61+
public Guid? t41 { get; set; }
62+
}
6463
}

examples/Mysql/Model/MysqlDbContext.cs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22
using System;
33
using MyStaging.Core;
44
using MyStaging.Common;
5-
using Newtonsoft.Json.Linq;
65
using MyStaging.Metadata;
76

87
namespace Mysql

examples/Mysql/Program.cs

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,6 @@
11
using Mysql.Model;
22
using Mysql.Services;
3-
using MyStaging.Common;
4-
using MyStaging.Interface;
53
using MyStaging.Metadata;
6-
using MyStaging.MySql.Generals;
7-
using Newtonsoft.Json.Linq;
84
using System;
95
using System.Collections.Generic;
106

@@ -34,8 +30,10 @@ static void Transaction()
3430
// 测试事务
3531
dbContext.BeginTransaction();
3632
dbContext.Customer.Insert.Add(customer);
37-
List<Customer> li = new List<Customer>();
38-
li.Add(new Customer { Name = "test" });
33+
List<Customer> li = new List<Customer>
34+
{
35+
new Customer { Name = "test" }
36+
};
3937
dbContext.Customer.Insert.AddRange(li).SaveChange();
4038
dbContext.Customer.Update.SetValue(a => a.Name, "12345").Where(f => f.Id == customer.Id).SaveChange();
4139
dbContext.CommitTransaction();

examples/Mysql/Services/ArticleService.cs

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,6 @@
11
using Mysql.Model;
22
using MyStaging.Function;
3-
using System;
43
using System.Collections.Generic;
5-
using System.Diagnostics;
6-
using System.Text;
7-
using System.Threading.Tasks;
84

95
namespace Mysql.Services
106
{

examples/Pgsql/ContextTest.cs

Lines changed: 68 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,33 +1,34 @@
11
using MyStaging.Common;
2+
using MyStaging.Metadata;
23
using Pgsql.Model;
34
using System;
45
using System.Collections.Generic;
5-
using System.Text;
66

77
namespace Pgsql
88
{
99
public class ContextTest
1010
{
1111
const string connectionString = "Host=127.0.0.1;Port=5432;Username=postgres;Password=postgres;Database=mystaging;Pooling=true;Maximum Pool Size=1000;";
1212
StagingOptions options;
13-
PgsqlDbContext userContext;
13+
PgsqlDbContext dbContext;
1414
public void Start()
1515
{
1616
options = new StagingOptions("user", connectionString);
17-
userContext = new PgsqlDbContext(options);
17+
dbContext = new PgsqlDbContext(options);
1818

1919
Insert();
2020
Delete();
2121
Update();
2222
Select();
23+
Transaction();
2324
}
2425

2526
private void Insert()
2627
{
27-
List<UserModel> users = new List<UserModel>();
28+
List<User> users = new List<User>();
2829
for (int i = 0; i < 100; i++)
2930
{
30-
var user = new UserModel
31+
var user = new User
3132
{
3233
id = ObjectId.NewId().ToString(),
3334
age = 18,
@@ -44,43 +45,90 @@ private void Insert()
4445
users.Add(user);
4546
}
4647

47-
var affrows = userContext.User.Insert.AddRange(users).SaveChange();
48+
var affrows = dbContext.User.Insert.AddRange(users).SaveChange();
4849
var firstUser = users[0];
4950
firstUser.id = ObjectId.NewId().ToString();
50-
userContext.User.Insert.Add(firstUser);
51+
dbContext.User.Insert.Add(firstUser);
5152

52-
Console.WriteLine("AddRange=={0}", affrows);
53-
Console.WriteLine("Add=={0}", firstUser.id);
53+
Console.WriteLine("AddRange={0}", affrows);
54+
Console.WriteLine("Add={0}", firstUser.id);
5455
}
56+
5557
private void Delete()
5658
{
57-
var user = userContext.User.Select.OrderByDescing(f => f.createtime).ToOne();
58-
userContext.User.Delete.Where(f => f.id == user.id).SaveChange();
59+
var user = dbContext.User.Select.OrderByDescing(f => f.createtime).ToOne();
60+
dbContext.User.Delete.Where(f => f.id == user.id).SaveChange();
5961

60-
var delete = userContext.User.Select.Where(f => f.id == user.id).ToOne();
62+
var delete = dbContext.User.Select.Where(f => f.id == user.id).ToOne();
6163
Console.WriteLine("Delete==User:{0},{1}", user.id, delete == null);
6264
}
65+
6366
private void Update()
6467
{
65-
var user = userContext.User.Select.OrderByDescing(f => f.createtime).ToOne();
66-
var newUser = userContext.User.Update.SetValue(f => f.age, 28)
68+
var user = dbContext.User.Select.OrderByDescing(f => f.createtime).ToOne();
69+
var newUser = dbContext.User.Update.SetValue(f => f.age, 28)
6770
.Where(f => f.id == user.id)
6871
.SaveChange();
6972

7073
Console.WriteLine("Update==user:{0},Age:old[{1}],new[{2}]", user.id, user.age, newUser.age);
7174
}
75+
7276
private void Select()
7377
{
7478
for (int i = 1; i < 10; i++)
7579
{
7680
var userId = "5ddc9d8eb5ee485e50000001";
77-
var sum = userContext.User.Select.Sum<long>(f => f.age);
81+
var sum = dbContext.User.Select.Sum<long>(f => f.age);
7882
Console.WriteLine(sum);
79-
var user = userContext.User.Select.Where(f => f.id == userId).ToOne();
80-
// var users = userContext.User.Select.ToList();
81-
//Console.WriteLine("userid=={0}", user.id);
82-
// Console.WriteLine("users=={0}--", users.Count);
83-
//users.Clear();
83+
var user = dbContext.User.Select.Where(f => f.id == userId).ToOne();
84+
var users = dbContext.User.Select.ToList();
85+
Console.WriteLine("userid=={0}", user.id);
86+
Console.WriteLine("users=={0}--", users.Count);
87+
users.Clear();
88+
}
89+
}
90+
91+
private void Transaction()
92+
{
93+
var user = new User
94+
{
95+
id = ObjectId.NewId().ToString(),
96+
age = 18,
97+
createtime = DateTime.Now,
98+
password = "123456",
99+
nickname = "lgx",
100+
IP = "127.0.0.1",
101+
loginname = "lgx",
102+
money = 0,
103+
role = et_role.普通成员,
104+
sex = true,
105+
wealth = 0
106+
};
107+
108+
try
109+
{
110+
// 测试事务
111+
dbContext.BeginTransaction();
112+
dbContext.User.Insert.Add(user);
113+
List<User> li = new List<User>
114+
{
115+
new User {
116+
id=ObjectId.NewId(),
117+
nickname = "test",
118+
loginname="测试人员的姓名"
119+
}
120+
};
121+
dbContext.User.Insert.AddRange(li).SaveChange();
122+
dbContext.User.Update.SetValue(a => a.nickname, "12345").Where(f => f.id == user.id).SaveChange();
123+
dbContext.CommitTransaction();
124+
125+
var art = dbContext.User.Select.Where(f => f.id == "5df09d4db5ee485ac0000008").ToOne();
126+
art = dbContext.User.Update.SetValue(f => f.nickname, "马冬梅").Where(f => f.id == user.id).SaveChange();
127+
int affrows = dbContext.User.Delete.Where(f => f.id == user.id).SaveChange();
128+
}
129+
catch (Exception e)
130+
{
131+
Console.WriteLine(e.Message);
84132
}
85133
}
86134
}

examples/Pgsql/Model/Article.cs

Lines changed: 12 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,21 @@
11
using System;
22
using System.Linq;
3-
using Newtonsoft.Json;
4-
using Newtonsoft.Json.Linq;
53
using NpgsqlTypes;
64
using System.ComponentModel.DataAnnotations.Schema;
75
using MyStaging.DataAnnotations;
6+
using System.Text.Json;
87

98
namespace Pgsql.Model
109
{
11-
[Table(name: "article", Schema = "public")]
12-
public partial class Article
13-
{
14-
[PrimaryKey]
15-
public string id { get; set; }
16-
[PrimaryKey]
17-
public string userid { get; set; }
18-
public string title { get; set; }
19-
public JToken content { get; set; }
20-
public DateTime createtime { get; set; }
21-
}
10+
[Table(name: "article", Schema = "public")]
11+
public partial class Article
12+
{
13+
[PrimaryKey]
14+
public string id { get; set; }
15+
[PrimaryKey]
16+
public string userid { get; set; }
17+
public string title { get; set; }
18+
public JsonElement content { get; set; }
19+
public DateTime createtime { get; set; }
20+
}
2221
}

0 commit comments

Comments
 (0)