diff --git a/Src/Asp.Net/MySqlTest/MySqlTest.csproj b/Src/Asp.Net/MySqlTest/MySqlTest.csproj index 8a76fd96c..ad70fd8c7 100644 --- a/Src/Asp.Net/MySqlTest/MySqlTest.csproj +++ b/Src/Asp.Net/MySqlTest/MySqlTest.csproj @@ -95,6 +95,7 @@ + diff --git a/Src/Asp.Net/MySqlTest/UnitTest/Main.cs b/Src/Asp.Net/MySqlTest/UnitTest/Main.cs index 14f097d9b..2a0a221ed 100644 --- a/Src/Asp.Net/MySqlTest/UnitTest/Main.cs +++ b/Src/Asp.Net/MySqlTest/UnitTest/Main.cs @@ -31,6 +31,7 @@ namespace OrmTest } public static void Init() { + UnitSameKeyBug.Init(); UOneManyMany.init(); UDelete.Init(); UCustom012.Init(); diff --git a/Src/Asp.Net/MySqlTest/UnitTest/UnitSameKeyBug.cs b/Src/Asp.Net/MySqlTest/UnitTest/UnitSameKeyBug.cs new file mode 100644 index 000000000..8e866b2aa --- /dev/null +++ b/Src/Asp.Net/MySqlTest/UnitTest/UnitSameKeyBug.cs @@ -0,0 +1,85 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using SqlSugar; +namespace OrmTest +{ + internal class UnitSameKeyBug + { + public static void Init() + { + var db = NewUnitTest.Db; + db.CodeFirst.InitTables(typeof(ServiceManage), typeof(UserInfo)); + db.DbMaintenance.TruncateTable(); + #region 第一次插入数据 + int a = db.Insertable(new UserInfo() { ContacAll = new List() { new ContactInfo() { Name="a"} }, Name = "a" }).ExecuteCommand(); + int b = db.Insertable(new UserInfo() { ContacAll = new List() { new ContactInfo() { Name = "z" } }, Name = "b" }).ExecuteCommand(); + + int c = db.Insertable(new ServiceManage() { ProjectName = "ceshi", userId = 1, careId = 2 }).ExecuteCommand(); + #endregion + var list = db.Queryable() + .LeftJoin((s, ss) => s.userId == ss.Id) + .LeftJoin((s, ss, sss) => s.careId == sss.Id) + .Select((s, ss, sss) => new ServiceManagementViewModel + { serviceManage = s, userInfo = ss, careUserInfo=sss }).ToList(); + if (!list.First().careUserInfo.ContacAll.Any()) + { + throw new Exception("unit error"); + } + + } + + } + public class UserInfo + { + [SqlSugar.SugarColumn(IsPrimaryKey = true, IsIdentity = true)] + public int Id { get; set; } + [SugarColumn(Length = 20, IsNullable = true)] + public string Name { get; set; } + [SugarColumn(IsJson = true)] + public List ContacAll { get; set; } + } + public class ContactInfo + { + /// + /// 姓名 + /// + public string Name { get; set; } + /// + /// 关系 + /// + public string Relationship { get; set; } + /// + /// 手机号 + /// + public string Phone { get; set; } + /// + /// 备用手机号 + /// + public string Phone2 { get; set; } + /// + /// 联系地址 + /// + public string Address { get; set; } + + } + public class ServiceManagementViewModel + { + public ServiceManage serviceManage { get; set; } + public UserInfo userInfo { get; set; } + public UserInfo careUserInfo { get; set; } + } + public class ServiceManage + { + [SqlSugar.SugarColumn(IsPrimaryKey = true, IsIdentity = true)] + public int Id { get; set; } + + [SugarColumn(Length = 20, IsNullable = true)] + public string ProjectName { get; set; } + public int userId { get; set; } + public int careId { get; set; } + + } +}