Skip to content

Commit 2089a1f

Browse files
2881028810
authored andcommitted
- 修复 LazyLoading 依赖项目 CSScript.Core 升级的 bug;(以上都不再升级该依赖)
1 parent 123ae07 commit 2089a1f

File tree

9 files changed

+437
-5
lines changed

9 files changed

+437
-5
lines changed

Extensions/FreeSql.Extensions.BaseEntity/BaseEntityReadOnly.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -140,7 +140,7 @@ static void TrackToList(object list)
140140
isFirst = false;
141141
var itemType = item.GetType();
142142
if (itemType == typeof(object)) return;
143-
if (itemType.FullName.StartsWith("Submission#")) itemType = itemType.BaseType;
143+
if (itemType.FullName.Contains("FreeSqlLazyEntity__")) itemType = itemType.BaseType;
144144
if (Orm.CodeFirst.GetTableByEntity(itemType)?.Primarys.Any() != true) return;
145145
if (item is BaseEntity<TEntity> == false) return;
146146
}

Extensions/FreeSql.Extensions.BaseEntity/Net40/BaseEntityReadOnly.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ static void TrackToList(object list)
7878
isFirst = false;
7979
var itemType = item.GetType();
8080
if (itemType == typeof(object)) return;
81-
if (itemType.FullName.StartsWith("Submission#")) itemType = itemType.BaseType;
81+
if (itemType.FullName.Contains("FreeSqlLazyEntity__")) itemType = itemType.BaseType;
8282
if (Orm.CodeFirst.GetTableByEntity(itemType)?.Primarys.Any() != true) return;
8383
if (item is BaseEntity<TEntity> == false) return;
8484
}

FreeSql.DbContext/DbSet/DbSet.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ internal void TrackToList(object list)
7878
if (item == null) return;
7979
var itemType = item.GetType();
8080
if (itemType == typeof(object)) return;
81-
if (itemType.FullName.StartsWith("Submission#")) itemType = itemType.BaseType;
81+
if (itemType.FullName.Contains("FreeSqlLazyEntity__")) itemType = itemType.BaseType;
8282
if (_db.Orm.CodeFirst.GetTableByEntity(itemType)?.Primarys.Any() != true) return;
8383
var dbset = _db.Set(itemType);
8484
dbset?.GetType().GetMethod("TrackToList", BindingFlags.Instance | BindingFlags.NonPublic).Invoke(dbset, new object[] { list });

FreeSql.DbContext/DbSet/DbSetSync.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -277,9 +277,9 @@ void AddOrUpdateNavigateList(TEntity item, bool isAdd, string propertyName = nul
277277
var isEquals = true;
278278
for (var midcolidx = tref.Columns.Count; midcolidx < tref.MiddleColumns.Count; midcolidx++)
279279
{
280-
var refcol = tref.Columns[midcolidx - tref.Columns.Count];
280+
var refcol = tref.RefColumns[midcolidx - tref.Columns.Count];
281281
var midval = FreeSql.Internal.Utils.GetDataReaderValue(refcol.CsType, _db.Orm.GetEntityValueWithPropertyName(tref.RefMiddleEntityType, midItem, tref.MiddleColumns[midcolidx].CsName));
282-
var refval = FreeSql.Internal.Utils.GetDataReaderValue(refcol.CsType, _db.Orm.GetEntityValueWithPropertyName(tref.RefEntityType, curList[curIdx], tref.Columns[midcolidx - tref.Columns.Count].CsName));
282+
var refval = FreeSql.Internal.Utils.GetDataReaderValue(refcol.CsType, _db.Orm.GetEntityValueWithPropertyName(tref.RefEntityType, curList[curIdx], refcol.CsName));
283283
if (object.Equals(midval, refval) == false)
284284
{
285285
isEquals = false;

FreeSql.Tests/FreeSql.Tests.DbContext/FreeSql.Tests.DbContext.csproj

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
</ItemGroup>
1717

1818
<ItemGroup>
19+
<ProjectReference Include="..\..\Extensions\FreeSql.Extensions.BaseEntity\FreeSql.Extensions.BaseEntity.csproj" />
1920
<ProjectReference Include="..\..\Extensions\FreeSql.Extensions.LazyLoading\FreeSql.Extensions.LazyLoading.csproj" />
2021
<ProjectReference Include="..\..\FreeSql.DbContext\FreeSql.DbContext.csproj" />
2122
<ProjectReference Include="..\..\Providers\FreeSql.Provider.MySql\FreeSql.Provider.MySql.csproj" />
Lines changed: 285 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,285 @@
1+
using FreeSql;
2+
using FreeSql.DataAnnotations;
3+
using System;
4+
using System.Collections.Generic;
5+
6+
/// <summary>
7+
/// 员工信息表
8+
/// </summary>
9+
[Serializable]
10+
[Index("员工代码badgenumber唯一", "badgenumber", true)]
11+
public class userinfo : BaseEntity<userinfo>
12+
{
13+
/// <summary>
14+
/// 员工ID
15+
/// </summary>
16+
[Column(IsPrimary = true)]
17+
[System.ComponentModel.DisplayName("员工ID ")]
18+
[System.ComponentModel.DataAnnotations.Required()]
19+
public int userid { get; set; }
20+
21+
/// <summary>
22+
/// 工号
23+
/// </summary>
24+
[System.ComponentModel.DisplayName("工号")]
25+
[System.ComponentModel.DataAnnotations.Required()]
26+
[Column(Name = "BADGENUMBER", DbType = "VARCHAR(24)")]
27+
public String badgenumber { get; set; }
28+
29+
/// <summary>
30+
/// 姓名
31+
/// </summary>
32+
[System.ComponentModel.DisplayName("姓名")]
33+
[System.ComponentModel.DataAnnotations.Required()]
34+
[Column(DbType = "varchar(40) NULL")]
35+
36+
public String Name { get; set; }
37+
/// <summary>
38+
/// 身份证
39+
/// </summary>
40+
[System.ComponentModel.DisplayName("身份证证")]
41+
[System.ComponentModel.DataAnnotations.Required()]
42+
public String IDCardNo { get; set; }
43+
44+
45+
46+
/// <summary>
47+
/// 行动电话
48+
/// </summary>
49+
[System.ComponentModel.DisplayName("行动电话")]
50+
[Column(DbType = "varchar(20) NULL")]
51+
public string pager { get; set; }
52+
53+
/// <summary>
54+
/// 邮件地址
55+
/// </summary>
56+
[System.ComponentModel.DisplayName("邮件地址 ")]
57+
public String email { get; set; }
58+
59+
60+
61+
62+
/// <summary>
63+
/// 办公电话
64+
/// </summary>
65+
[System.ComponentModel.DisplayName("办公电话")]
66+
[Column(DbType = "varchar(20) NULL")]
67+
public String ophone { get; set; }
68+
69+
/// <summary>
70+
/// 入职时间
71+
/// </summary>
72+
[System.ComponentModel.DisplayName("入职时间")]
73+
[Column(DbType = "date")]
74+
public DateTime? hiredday { get; set; }
75+
76+
77+
78+
79+
/// <summary>
80+
/// 生日
81+
/// </summary>
82+
[System.ComponentModel.DisplayName("生日 ")]
83+
[Column(DbType = "date")]
84+
public DateTime? birthday { get; set; }
85+
86+
87+
/// <summary>
88+
/// 民族
89+
/// </summary>
90+
[System.ComponentModel.DisplayName("民族")]
91+
public string minzu { get; set; }
92+
93+
/// <summary>
94+
/// 籍贯
95+
/// </summary>
96+
[System.ComponentModel.DisplayName("籍贯")]
97+
public String homeaddress { get; set; }
98+
99+
100+
/// <summary>
101+
/// 合同日期
102+
/// </summary>
103+
[System.ComponentModel.DisplayName("合同日期")]
104+
[Column(DbType = "date")]
105+
public DateTime? hetongdate { get; set; }
106+
107+
/// <summary>
108+
/// 家庭地址
109+
/// </summary>
110+
[System.ComponentModel.DisplayName("家庭地址")]
111+
[Column(DbType = "varchar(80) NULL")]
112+
public String street { get; set; }
113+
114+
115+
/// <summary>
116+
/// 邮编
117+
/// </summary>
118+
[System.ComponentModel.DisplayName("邮编")]
119+
[Column(DbType = "varchar(12) NULL")]
120+
public String zip { get; set; }
121+
122+
[System.ComponentModel.DisplayName("城市")]
123+
[Column(Name = "CITY", DbType = "varchar(2)")]
124+
public string CITY { get; set; }
125+
126+
[System.ComponentModel.DisplayName("省份")]
127+
[Column(DbType = "varchar(2) NULL")]
128+
public string STATE { get; set; }
129+
130+
131+
/// <summary>
132+
/// 编号
133+
/// </summary>
134+
[System.ComponentModel.DisplayName("编号")]
135+
136+
public string ssn { get; set; }
137+
138+
[Column(DbType = "varchar(8) NULL")]
139+
public string GENDER { get; set; } = "M";
140+
/// <summary>
141+
/// 职务
142+
/// </summary>
143+
[System.ComponentModel.DisplayName("职务")]
144+
[Column(DbType = "varchar(20) NULL")]
145+
public string title { get; set; }
146+
147+
148+
public short? VERIFICATIONMETHOD { get; set; }//验证方式
149+
public short? DEFAULTDEPTID { get; set; } = 1;//所属部门ID号
150+
public short? ATT { get; set; } = 1;//考勤有效
151+
public short? INLATE { get; set; } = 1;//计迟到
152+
public short? OUTEARLY { get; set; } = 1;//计早退
153+
154+
public short? OVERTIME { get; set; }
155+
156+
public short? SEP { get; set; } = 1;
157+
public short HOLIDAY { get; set; } = 1;//假日休息
158+
public string PASSWORD { get; set; }//口令
159+
public short LUNCHDURATION { get; set; } = 1;//有午休
160+
public string MVerifyPass { get; set; }//考勤验证密码
161+
162+
//[Column(DbType = "image NULL")]
163+
//public byte[] PHOTO { get; set; }
164+
//[Column(DbType = "image NULL")]
165+
//public byte[] Notes { get; set; }
166+
167+
public int? VerifyCode { get; set; }
168+
public int? Expires { get; set; }
169+
public int? ValidCount { get; set; }
170+
public int? UseAccGroupTZ { get; set; }
171+
172+
public int? AccGroup { get; set; }
173+
public int? FaceGroup { get; set; }
174+
public int? EMPRIVILEGE { get; set; }
175+
public int? InheritDeptRule { get; set; }
176+
public int? RegisterOT { get; set; }
177+
public int? MinAutoSchInterval { get; set; }
178+
public int? AutoSchPlan { get; set; }
179+
public int? InheritDeptSchClass { get; set; }
180+
public int? InheritDeptSch { get; set; }
181+
public int? privilege { get; set; }
182+
public int? TimeZone1 { get; set; }
183+
public int? TimeZone2 { get; set; }
184+
public int? TimeZone3 { get; set; }
185+
186+
[Column(DbType = "date")]
187+
public DateTime? ValidTimeEnd { get; set; }
188+
[Column(DbType = "date")]
189+
public DateTime? ValidTimeBegin { get; set; }
190+
191+
/// <summary>
192+
/// 家庭电话
193+
/// </summary>
194+
[System.ComponentModel.DisplayName("家庭电话")]
195+
[Column(DbType = "varchar(20) NULL")]
196+
public String fphone { get; set; }
197+
198+
/// <summary>
199+
/// 卡号
200+
/// </summary>
201+
[System.ComponentModel.DisplayName("卡号 ")]
202+
[Column(Name = "CardNo", DbType = "varchar(20)")]
203+
public String CardNo { get; set; }
204+
205+
206+
207+
/// <summary>
208+
/// 身份证有效期
209+
/// </summary>
210+
[System.ComponentModel.DisplayName("身份证有效期 ")]
211+
public String idcardvalidtime { get; set; } = new DateTime(2099, 12, 31).ToString();
212+
213+
214+
215+
216+
217+
/// <summary>
218+
/// 离职日期
219+
/// </summary>
220+
[System.ComponentModel.DisplayName("离职日期")]
221+
[Column(DbType = "date")]
222+
public DateTime? leavedate { get; set; }
223+
224+
/// <summary>
225+
/// 登录密码
226+
/// </summary>
227+
[System.ComponentModel.DisplayName("登录密码")]
228+
public String loginpass { get; set; }
229+
230+
231+
/// <summary>
232+
/// 相片地址
233+
/// </summary>
234+
[System.ComponentModel.DisplayName("相片地址")]
235+
public String picurl { get; set; }
236+
237+
/// <summary>
238+
/// 上级主管
239+
/// </summary>
240+
[System.ComponentModel.DisplayName("上级主管")]
241+
public int? managerid { get; set; }
242+
///// <summary>
243+
///// 上级主管对象
244+
///// </summary>
245+
//[Navigate("managerid")]
246+
//public userinfo pManager { get; set; }
247+
248+
249+
250+
[Navigate(ManyToMany = typeof(dept_user))]
251+
public List<DEPARTMENTS> depts { get; set; }
252+
253+
/// <summary>
254+
/// 管理员标志
255+
/// </summary>
256+
257+
[System.ComponentModel.DisplayName("管理员标志")]
258+
public short? SECURITYFLAGS { get; set; }//管理员标志
259+
260+
261+
262+
263+
264+
265+
266+
267+
268+
269+
270+
271+
272+
273+
274+
275+
}
276+
277+
278+
279+
280+
281+
282+
283+
284+
285+

FreeSql.Tests/FreeSql.Tests.DbContext/UnitTest1.cs

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,35 @@ public enum testenumWhereType { Menu, Class, Blaaa }
2121
[Fact]
2222
public void Include_ManyToMany()
2323
{
24+
g.sqlite.Delete<userinfo>().Where("1=1").ExecuteAffrows();
25+
g.sqlite.Delete<DEPARTMENTS>().Where("1=1").ExecuteAffrows();
26+
g.sqlite.Delete<dept_user>().Where("1=1").ExecuteAffrows();
27+
BaseEntity.Initialization(g.sqlite);
28+
29+
userinfo user = new userinfo { userid = 1 };
30+
user.Insert();
31+
32+
user.depts = new List<DEPARTMENTS>(
33+
new[] {
34+
new DEPARTMENTS { deptid = 1, deptcode = "01" },
35+
new DEPARTMENTS { deptid = 2, deptcode = "02" },
36+
new DEPARTMENTS { deptid = 3, deptcode = "03" },
37+
});
38+
user.SaveMany("depts");
39+
40+
user.depts = new List<DEPARTMENTS>(
41+
new[] {
42+
new DEPARTMENTS { deptid = 1, deptcode = "01" },
43+
new DEPARTMENTS { deptid = 2, deptcode = "02" },
44+
new DEPARTMENTS { deptid = 4, deptcode = "04" },
45+
});
46+
user.SaveMany("depts");
47+
48+
user.depts = new List<DEPARTMENTS>(
49+
new[] {
50+
new DEPARTMENTS { deptid = 2, deptcode = "02" },
51+
});
52+
user.SaveMany("depts");
2453

2554
g.sqlite.CodeFirst.SyncStructure<Song_tag>();
2655
g.sqlite.CodeFirst.SyncStructure<Tag>();

0 commit comments

Comments
 (0)