Skip to content

Commit f22f65f

Browse files
2881028810
28810
authored and
28810
committed
- 修复 DbContext/Repository Update 不更新 DbUpdateValue 的问题;#219
1 parent 761b6e0 commit f22f65f

File tree

17 files changed

+321
-18
lines changed

17 files changed

+321
-18
lines changed

FreeSql.DbContext/FreeSql.DbContext.xml

-7
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

FreeSql.Tests/FreeSql.Tests.Provider.MySqlConnector/FreeSql.Tests.Provider.MySqlConnector.csproj

+1
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717

1818
<ItemGroup>
1919
<ProjectReference Include="..\..\Extensions\FreeSql.Extensions.LazyLoading\FreeSql.Extensions.LazyLoading.csproj" />
20+
<ProjectReference Include="..\..\FreeSql.DbContext\FreeSql.DbContext.csproj" />
2021
<ProjectReference Include="..\..\FreeSql\FreeSql.csproj" />
2122
<ProjectReference Include="..\..\Providers\FreeSql.Provider.MySqlConnector\FreeSql.Provider.MySqlConnector.csproj" />
2223
</ItemGroup>

FreeSql.Tests/FreeSql.Tests.Provider.MySqlConnector/MySqlConnector/MySqlCodeFirstTest.cs

+24
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,30 @@ class tbdot01
5757
Assert.Equal(item.标题, item2.标题);
5858

5959
g.mysql.Update<测试中文表2>().SetSource(item2).ExecuteAffrows();
60+
61+
62+
63+
item.标题 = "测试标题更新";
64+
Assert.Equal(1, g.mysql.Update<测试中文表2>().SetSource(item).ExecuteAffrows());
65+
item2 = g.mysql.Select<测试中文表2>().Where(a => a.编号 == item.编号).First();
66+
Assert.NotNull(item2);
67+
Assert.Equal(item.编号, item2.编号);
68+
Assert.Equal(item.标题, item2.标题);
69+
70+
item.标题 = "测试标题更新_repo";
71+
var repo = g.mysql.GetRepository<测试中文表2>();
72+
Assert.Equal(1, repo.Update(item));
73+
item2 = g.mysql.Select<测试中文表2>().Where(a => a.编号 == item.编号).First();
74+
Assert.NotNull(item2);
75+
Assert.Equal(item.编号, item2.编号);
76+
Assert.Equal(item.标题, item2.标题);
77+
78+
item.标题 = "测试标题更新_repo22";
79+
Assert.Equal(1, repo.Update(item));
80+
item2 = g.mysql.Select<测试中文表2>().Where(a => a.编号 == item.编号).First();
81+
Assert.NotNull(item2);
82+
Assert.Equal(item.编号, item2.编号);
83+
Assert.Equal(item.标题, item2.标题);
6084
}
6185
class 测试中文表2
6286
{

FreeSql.Tests/FreeSql.Tests.Provider.Odbc/Dameng/DamengCodeFirstTest.cs

+22
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,28 @@ public class DamengCodeFirstTest
2828
Assert.NotNull(item2);
2929
Assert.Equal(item.编号, item2.编号);
3030
Assert.Equal(item.标题, item2.标题);
31+
32+
item.标题 = "测试标题更新";
33+
Assert.Equal(1, g.dameng.Update<测试中文表>().SetSource(item).ExecuteAffrows());
34+
item2 = g.dameng.Select<测试中文表>().Where(a => a.编号 == item.编号).First();
35+
Assert.NotNull(item2);
36+
Assert.Equal(item.编号, item2.编号);
37+
Assert.Equal(item.标题, item2.标题);
38+
39+
item.标题 = "测试标题更新_repo";
40+
var repo = g.dameng.GetRepository<测试中文表>();
41+
Assert.Equal(1, repo.Update(item));
42+
item2 = g.dameng.Select<测试中文表>().Where(a => a.编号 == item.编号).First();
43+
Assert.NotNull(item2);
44+
Assert.Equal(item.编号, item2.编号);
45+
Assert.Equal(item.标题, item2.标题);
46+
47+
item.标题 = "测试标题更新_repo22";
48+
Assert.Equal(1, repo.Update(item));
49+
item2 = g.dameng.Select<测试中文表>().Where(a => a.编号 == item.编号).First();
50+
Assert.NotNull(item2);
51+
Assert.Equal(item.编号, item2.编号);
52+
Assert.Equal(item.标题, item2.标题);
3153
}
3254
class 测试中文表
3355
{

FreeSql.Tests/FreeSql.Tests.Provider.Odbc/Default/OdbcCodeFirstTest.cs

+22
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,28 @@ public void 中文表_字段()
2525
Assert.NotNull(item2);
2626
Assert.Equal(item.编号, item2.编号);
2727
Assert.Equal(item.标题, item2.标题);
28+
29+
item.标题 = "测试标题更新";
30+
Assert.Equal(1, g.odbc.Update<测试中文表>().SetSource(item).ExecuteAffrows());
31+
item2 = g.odbc.Select<测试中文表>().Where(a => a.编号 == item.编号).First();
32+
Assert.NotNull(item2);
33+
Assert.Equal(item.编号, item2.编号);
34+
Assert.Equal(item.标题, item2.标题);
35+
36+
item.标题 = "测试标题更新_repo";
37+
var repo = g.odbc.GetRepository<测试中文表>();
38+
Assert.Equal(1, repo.Update(item));
39+
item2 = g.odbc.Select<测试中文表>().Where(a => a.编号 == item.编号).First();
40+
Assert.NotNull(item2);
41+
Assert.Equal(item.编号, item2.编号);
42+
Assert.Equal(item.标题, item2.标题);
43+
44+
item.标题 = "测试标题更新_repo22";
45+
Assert.Equal(1, repo.Update(item));
46+
item2 = g.odbc.Select<测试中文表>().Where(a => a.编号 == item.编号).First();
47+
Assert.NotNull(item2);
48+
Assert.Equal(item.编号, item2.编号);
49+
Assert.Equal(item.标题, item2.标题);
2850
}
2951
class 测试中文表
3052
{

FreeSql.Tests/FreeSql.Tests.Provider.Odbc/MySql/MySqlCodeFirstTest.cs

+22
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,28 @@ class tbdot01
5555
Assert.NotNull(item2);
5656
Assert.Equal(item.编号, item2.编号);
5757
Assert.Equal(item.标题, item2.标题);
58+
59+
item.标题 = "测试标题更新";
60+
Assert.Equal(1, g.mysql.Update<测试中文表2>().SetSource(item).ExecuteAffrows());
61+
item2 = g.mysql.Select<测试中文表2>().Where(a => a.编号 == item.编号).First();
62+
Assert.NotNull(item2);
63+
Assert.Equal(item.编号, item2.编号);
64+
Assert.Equal(item.标题, item2.标题);
65+
66+
item.标题 = "测试标题更新_repo";
67+
var repo = g.mysql.GetRepository<测试中文表2>();
68+
Assert.Equal(1, repo.Update(item));
69+
item2 = g.mysql.Select<测试中文表2>().Where(a => a.编号 == item.编号).First();
70+
Assert.NotNull(item2);
71+
Assert.Equal(item.编号, item2.编号);
72+
Assert.Equal(item.标题, item2.标题);
73+
74+
item.标题 = "测试标题更新_repo22";
75+
Assert.Equal(1, repo.Update(item));
76+
item2 = g.mysql.Select<测试中文表2>().Where(a => a.编号 == item.编号).First();
77+
Assert.NotNull(item2);
78+
Assert.Equal(item.编号, item2.编号);
79+
Assert.Equal(item.标题, item2.标题);
5880
}
5981
class 测试中文表2
6082
{

FreeSql.Tests/FreeSql.Tests.Provider.Odbc/Oracle/OracleCodeFirstTest.cs

+22
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,28 @@ public class OracleCodeFirstTest
2828
Assert.NotNull(item2);
2929
Assert.Equal(item.编号, item2.编号);
3030
Assert.Equal(item.标题, item2.标题);
31+
32+
item.标题 = "测试标题更新";
33+
Assert.Equal(1, g.oracle.Update<测试中文表>().SetSource(item).ExecuteAffrows());
34+
item2 = g.oracle.Select<测试中文表>().Where(a => a.编号 == item.编号).First();
35+
Assert.NotNull(item2);
36+
Assert.Equal(item.编号, item2.编号);
37+
Assert.Equal(item.标题, item2.标题);
38+
39+
item.标题 = "测试标题更新_repo";
40+
var repo = g.oracle.GetRepository<测试中文表>();
41+
Assert.Equal(1, repo.Update(item));
42+
item2 = g.oracle.Select<测试中文表>().Where(a => a.编号 == item.编号).First();
43+
Assert.NotNull(item2);
44+
Assert.Equal(item.编号, item2.编号);
45+
Assert.Equal(item.标题, item2.标题);
46+
47+
item.标题 = "测试标题更新_repo22";
48+
Assert.Equal(1, repo.Update(item));
49+
item2 = g.oracle.Select<测试中文表>().Where(a => a.编号 == item.编号).First();
50+
Assert.NotNull(item2);
51+
Assert.Equal(item.编号, item2.编号);
52+
Assert.Equal(item.标题, item2.标题);
3153
}
3254
class 测试中文表
3355
{

FreeSql.Tests/FreeSql.Tests.Provider.Odbc/PostgreSQL/PostgreSQLCodeFirstTest.cs

+22
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,28 @@ public class PostgreSQLCodeFirstTest
3232
Assert.NotNull(item2);
3333
Assert.Equal(item.编号, item2.编号);
3434
Assert.Equal(item.标题, item2.标题);
35+
36+
item.标题 = "测试标题更新";
37+
Assert.Equal(1, g.pgsql.Update<测试中文表>().SetSource(item).ExecuteAffrows());
38+
item2 = g.pgsql.Select<测试中文表>().Where(a => a.编号 == item.编号).First();
39+
Assert.NotNull(item2);
40+
Assert.Equal(item.编号, item2.编号);
41+
Assert.Equal(item.标题, item2.标题);
42+
43+
item.标题 = "测试标题更新_repo";
44+
var repo = g.pgsql.GetRepository<测试中文表>();
45+
Assert.Equal(1, repo.Update(item));
46+
item2 = g.pgsql.Select<测试中文表>().Where(a => a.编号 == item.编号).First();
47+
Assert.NotNull(item2);
48+
Assert.Equal(item.编号, item2.编号);
49+
Assert.Equal(item.标题, item2.标题);
50+
51+
item.标题 = "测试标题更新_repo22";
52+
Assert.Equal(1, repo.Update(item));
53+
item2 = g.pgsql.Select<测试中文表>().Where(a => a.编号 == item.编号).First();
54+
Assert.NotNull(item2);
55+
Assert.Equal(item.编号, item2.编号);
56+
Assert.Equal(item.标题, item2.标题);
3557
}
3658
class 测试中文表
3759
{

FreeSql.Tests/FreeSql.Tests.Provider.Odbc/SqlServer/SqlServerCodeFirstTest.cs

+22
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,28 @@ public class SqlServerCodeFirstTest
2929
Assert.NotNull(item2);
3030
Assert.Equal(item.编号, item2.编号);
3131
Assert.Equal(item.标题, item2.标题);
32+
33+
item.标题 = "测试标题更新";
34+
Assert.Equal(1, g.sqlserver.Update<测试中文表>().SetSource(item).ExecuteAffrows());
35+
item2 = g.sqlserver.Select<测试中文表>().Where(a => a.编号 == item.编号).First();
36+
Assert.NotNull(item2);
37+
Assert.Equal(item.编号, item2.编号);
38+
Assert.Equal(item.标题, item2.标题);
39+
40+
item.标题 = "测试标题更新_repo";
41+
var repo = g.sqlserver.GetRepository<测试中文表>();
42+
Assert.Equal(1, repo.Update(item));
43+
item2 = g.sqlserver.Select<测试中文表>().Where(a => a.编号 == item.编号).First();
44+
Assert.NotNull(item2);
45+
Assert.Equal(item.编号, item2.编号);
46+
Assert.Equal(item.标题, item2.标题);
47+
48+
item.标题 = "测试标题更新_repo22";
49+
Assert.Equal(1, repo.Update(item));
50+
item2 = g.sqlserver.Select<测试中文表>().Where(a => a.编号 == item.编号).First();
51+
Assert.NotNull(item2);
52+
Assert.Equal(item.编号, item2.编号);
53+
Assert.Equal(item.标题, item2.标题);
3254
}
3355
class 测试中文表
3456
{

FreeSql.Tests/FreeSql.Tests/MsAccess/MsAccessCodeFirstTest.cs

+22
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,28 @@ public class MsAccessCodeFirstTest
2828
Assert.NotNull(item2);
2929
Assert.Equal(item.编号, item2.编号);
3030
Assert.Equal(item.标题, item2.标题);
31+
32+
item.标题 = "测试标题更新";
33+
Assert.Equal(1, g.msaccess.Update<测试中文表>().SetSource(item).ExecuteAffrows());
34+
item2 = g.msaccess.Select<测试中文表>().Where(a => a.编号 == item.编号).First();
35+
Assert.NotNull(item2);
36+
Assert.Equal(item.编号, item2.编号);
37+
Assert.Equal(item.标题, item2.标题);
38+
39+
item.标题 = "测试标题更新_repo";
40+
var repo = g.msaccess.GetRepository<测试中文表>();
41+
Assert.Equal(1, repo.Update(item));
42+
item2 = g.msaccess.Select<测试中文表>().Where(a => a.编号 == item.编号).First();
43+
Assert.NotNull(item2);
44+
Assert.Equal(item.编号, item2.编号);
45+
Assert.Equal(item.标题, item2.标题);
46+
47+
item.标题 = "测试标题更新_repo22";
48+
Assert.Equal(1, repo.Update(item));
49+
item2 = g.msaccess.Select<测试中文表>().Where(a => a.编号 == item.编号).First();
50+
Assert.NotNull(item2);
51+
Assert.Equal(item.编号, item2.编号);
52+
Assert.Equal(item.标题, item2.标题);
3153
}
3254
class 测试中文表
3355
{

FreeSql.Tests/FreeSql.Tests/MySql/MySqlCodeFirstTest.cs

+25-1
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,28 @@ class tbdot01
5252
Assert.NotNull(item2);
5353
Assert.Equal(item.编号, item2.编号);
5454
Assert.Equal(item.标题, item2.标题);
55+
56+
item.标题22 = "测试标题更新";
57+
Assert.Equal(1, g.mysql.Update<测试中文表2>().SetSource(item).ExecuteAffrows());
58+
item2 = g.mysql.Select<测试中文表2>().Where(a => a.编号 == item.编号).First();
59+
Assert.NotNull(item2);
60+
Assert.Equal(item.编号, item2.编号);
61+
Assert.Equal(item.标题22, item2.标题22);
62+
63+
item.标题22 = "测试标题更新_repo";
64+
var repo = g.mysql.GetRepository<测试中文表2>();
65+
Assert.Equal(1, repo.Update(item));
66+
item2 = g.mysql.Select<测试中文表2>().Where(a => a.编号 == item.编号).First();
67+
Assert.NotNull(item2);
68+
Assert.Equal(item.编号, item2.编号);
69+
Assert.Equal(item.标题22, item2.标题22);
70+
71+
item.标题22 = "测试标题更新_repo22";
72+
Assert.Equal(1, repo.Update(item));
73+
item2 = g.mysql.Select<测试中文表2>().Where(a => a.编号 == item.编号).First();
74+
Assert.NotNull(item2);
75+
Assert.Equal(item.编号, item2.编号);
76+
Assert.Equal(item.标题22, item2.标题22);
5577
}
5678
class 测试中文表2
5779
{
@@ -60,6 +82,8 @@ class tbdot01
6082

6183
public string 标题 { get; protected set; }
6284

85+
public string 标题22 { get; set; }
86+
6387
[Column(ServerTime = DateTimeKind.Local, CanUpdate = false)]
6488
public DateTime 创建时间 { get; protected set; }
6589

@@ -68,7 +92,7 @@ class tbdot01
6892

6993
public static 测试中文表2 Create(string title, DateTime ctm)
7094
{
71-
return new 测试中文表2 { 标题 = title, 创建时间 = ctm };
95+
return new 测试中文表2 { 标题 = title, 标题22 = title, 创建时间 = ctm };
7296
}
7397
}
7498

FreeSql.Tests/FreeSql.Tests/Oracle/OracleCodeFirstTest.cs

+22
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,28 @@ public class OracleCodeFirstTest
2828
Assert.NotNull(item2);
2929
Assert.Equal(item.编号, item2.编号);
3030
Assert.Equal(item.标题, item2.标题);
31+
32+
item.标题 = "测试标题更新";
33+
Assert.Equal(1, g.oracle.Update<测试中文表>().SetSource(item).ExecuteAffrows());
34+
item2 = g.oracle.Select<测试中文表>().Where(a => a.编号 == item.编号).First();
35+
Assert.NotNull(item2);
36+
Assert.Equal(item.编号, item2.编号);
37+
Assert.Equal(item.标题, item2.标题);
38+
39+
item.标题 = "测试标题更新_repo";
40+
var repo = g.oracle.GetRepository<测试中文表>();
41+
Assert.Equal(1, repo.Update(item));
42+
item2 = g.oracle.Select<测试中文表>().Where(a => a.编号 == item.编号).First();
43+
Assert.NotNull(item2);
44+
Assert.Equal(item.编号, item2.编号);
45+
Assert.Equal(item.标题, item2.标题);
46+
47+
item.标题 = "测试标题更新_repo22";
48+
Assert.Equal(1, repo.Update(item));
49+
item2 = g.oracle.Select<测试中文表>().Where(a => a.编号 == item.编号).First();
50+
Assert.NotNull(item2);
51+
Assert.Equal(item.编号, item2.编号);
52+
Assert.Equal(item.标题, item2.标题);
3153
}
3254
class 测试中文表
3355
{

FreeSql.Tests/FreeSql.Tests/PostgreSQL/PostgreSQLCodeFirstTest.cs

+22
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,28 @@ public class PostgreSQLCodeFirstTest
3535
Assert.NotNull(item2);
3636
Assert.Equal(item.编号, item2.编号);
3737
Assert.Equal(item.标题, item2.标题);
38+
39+
item.标题 = "测试标题更新";
40+
Assert.Equal(1, g.pgsql.Update<测试中文表>().SetSource(item).ExecuteAffrows());
41+
item2 = g.pgsql.Select<测试中文表>().Where(a => a.编号 == item.编号).First();
42+
Assert.NotNull(item2);
43+
Assert.Equal(item.编号, item2.编号);
44+
Assert.Equal(item.标题, item2.标题);
45+
46+
item.标题 = "测试标题更新_repo";
47+
var repo = g.pgsql.GetRepository<测试中文表>();
48+
Assert.Equal(1, repo.Update(item));
49+
item2 = g.pgsql.Select<测试中文表>().Where(a => a.编号 == item.编号).First();
50+
Assert.NotNull(item2);
51+
Assert.Equal(item.编号, item2.编号);
52+
Assert.Equal(item.标题, item2.标题);
53+
54+
item.标题 = "测试标题更新_repo22";
55+
Assert.Equal(1, repo.Update(item));
56+
item2 = g.pgsql.Select<测试中文表>().Where(a => a.编号 == item.编号).First();
57+
Assert.NotNull(item2);
58+
Assert.Equal(item.编号, item2.编号);
59+
Assert.Equal(item.标题, item2.标题);
3860
}
3961
class 测试中文表
4062
{

FreeSql.Tests/FreeSql.Tests/SqlServer/SqlServerCodeFirstTest.cs

+22
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,28 @@ public class SqlServerCodeFirstTest
2929
Assert.NotNull(item2);
3030
Assert.Equal(item.编号, item2.编号);
3131
Assert.Equal(item.标题, item2.标题);
32+
33+
item.标题 = "测试标题更新";
34+
Assert.Equal(1, g.sqlserver.Update<测试中文表>().SetSource(item).ExecuteAffrows());
35+
item2 = g.sqlserver.Select<测试中文表>().Where(a => a.编号 == item.编号).First();
36+
Assert.NotNull(item2);
37+
Assert.Equal(item.编号, item2.编号);
38+
Assert.Equal(item.标题, item2.标题);
39+
40+
item.标题 = "测试标题更新_repo";
41+
var repo = g.sqlserver.GetRepository<测试中文表>();
42+
Assert.Equal(1, repo.Update(item));
43+
item2 = g.sqlserver.Select<测试中文表>().Where(a => a.编号 == item.编号).First();
44+
Assert.NotNull(item2);
45+
Assert.Equal(item.编号, item2.编号);
46+
Assert.Equal(item.标题, item2.标题);
47+
48+
item.标题 = "测试标题更新_repo22";
49+
Assert.Equal(1, repo.Update(item));
50+
item2 = g.sqlserver.Select<测试中文表>().Where(a => a.编号 == item.编号).First();
51+
Assert.NotNull(item2);
52+
Assert.Equal(item.编号, item2.编号);
53+
Assert.Equal(item.标题, item2.标题);
3254
}
3355
class 测试中文表
3456
{

0 commit comments

Comments
 (0)