diff --git a/Src/Asp.Net/SqlServerTest/SqlServerTest.csproj b/Src/Asp.Net/SqlServerTest/SqlServerTest.csproj index f477fb1d1..35a5a550b 100644 --- a/Src/Asp.Net/SqlServerTest/SqlServerTest.csproj +++ b/Src/Asp.Net/SqlServerTest/SqlServerTest.csproj @@ -107,6 +107,7 @@ + diff --git a/Src/Asp.Net/SqlServerTest/UnitTest/Main.cs b/Src/Asp.Net/SqlServerTest/UnitTest/Main.cs index 428414899..cf278cc4c 100644 --- a/Src/Asp.Net/SqlServerTest/UnitTest/Main.cs +++ b/Src/Asp.Net/SqlServerTest/UnitTest/Main.cs @@ -31,6 +31,7 @@ namespace OrmTest } public static void Init() { + UnitManyToMany4.Init(); UnitManyToMany3.Init(); UnitUpdateOneToMany.Init(); UQueryableByObject.Init(); diff --git a/Src/Asp.Net/SqlServerTest/UnitTest/UnitManyToMany4.cs b/Src/Asp.Net/SqlServerTest/UnitTest/UnitManyToMany4.cs new file mode 100644 index 000000000..21b6e57a7 --- /dev/null +++ b/Src/Asp.Net/SqlServerTest/UnitTest/UnitManyToMany4.cs @@ -0,0 +1,264 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using SqlSugar; +namespace OrmTest +{ + internal class UnitManyToMany4 + { + public static void Init() + { + var db = NewUnitTest.Db; + db.CodeFirst.InitTables(); + db.DbMaintenance.TruncateTable(); + db.Insertable(new OperatorInfo() + { + id="1", + createTime=DateTime.Now, + isDel=1, + isDisabled=1, + openid="", + phone="", + pwd="", + realname="a01", + remark="a", + sno="a", + username="a01" + }).ExecuteCommand(); + db.Insertable(new OperatorInfo() + { + id = "2", + createTime = DateTime.Now, + isDel = 1, + isDisabled = 1, + openid = "", + phone = "", + pwd = "", + realname = "a01", + remark = "a", + sno = "a", + username = "admin" + }).ExecuteCommand(); + db.Insertable(new OperatorInfo() + { + id = "3", + createTime = DateTime.Now, + isDel = 1, + isDisabled = 1, + openid = "", + phone = "", + pwd = "", + realname = "a01", + remark = "a", + sno = "a", + username = "admin" + }).ExecuteCommand(); + var id=db.Insertable(new Role() + { + id=1, + createTime=DateTime.Now, + name="admin1" + + }).ExecuteReturnIdentity(); + var id2 = db.Insertable(new Role() + { + id = 2, + createTime = DateTime.Now, + name = "admin2" + + }).ExecuteReturnIdentity(); + + + db.InsertNav(new OperatorInfo() + { + id = "1113", + createTime = DateTime.Now, + isDel = 1, + isDisabled = 1, + openid = "", + phone = "", + pwd = "", + realname = "a01", + remark = "a", + sno = "a", + username = "admin", + Roles = new List() { new Role() { id = 2 } } + }).Include(z => z.Roles, + new InsertNavOptions() + { + ManyToManySaveMappingTemplate = new OptRole() + { + CreateTime = "2020", + OrgId ="1x" + + } + }) + .ExecuteCommand(); + + var list=db.Queryable() + .Where(x=>x.id== "1113").Includes(x => x.Roles).ToList(); + + var mapping = db.Queryable().Where(x => x.operId == "1113").First(); + if (mapping.OrgId != "1x"||mapping.CreateTime!="2020"|| list.First().Roles.Count!=1) + { + throw new Exception("unit error"); + } + + db.UpdateNav(new OperatorInfo() + { + id = "1113", + createTime = DateTime.Now, + isDel = 1, + isDisabled = 1, + openid = "", + phone = "", + pwd = "", + realname = "a01", + remark = "a", + sno = "a", + username = "admin", + Roles = new List() { new Role() { id = 2 } } + }).Include(z => z.Roles, + new UpdateNavOptions() + { + ManyToManySaveMappingTemplate = new OptRole() + { + CreateTime = "1010", + OrgId = "1x" + + } + }) + .ExecuteCommand(); + + } + + /// + /// 描述: + /// 作者:synjones + /// 时间:2022-04-20 21:30:28 + /// + [SugarTable("unit_operatorinfoasdfa31")] + public partial class OperatorInfo + { /// + /// 多角色 + /// + [Navigate(typeof(OptRole), nameof(OptRole.operId), nameof(OptRole.roleId))]//名字换 + public List Roles { get; set; } + /// + /// 主键 + /// + [SugarColumn(IsPrimaryKey = true, ColumnName = "MYID")] + public string id { get; set; } + + /// + /// 姓名 + /// + public string realname { get; set; } + + /// + /// 账号 + /// + public string username { get; set; } + + /// + /// 密码 + /// + public string pwd { get; set; } + + /// + /// 学号 + /// + public string sno { get; set; } + + /// + /// openid + /// + public string openid { get; set; } + + /// + /// 手机号码 + /// + public string phone { get; set; } + + /// + /// 备注信息 + /// + public string remark { get; set; } + + /// + /// 创建日期 + /// + public DateTime createTime { get; set; } + + /// + /// 状态(1:启用,2:禁用) + /// + public int isDisabled { get; set; } + + /// + /// 是否删除(1:正常;2:删除) + /// + public int isDel { get; set; } + + } + + /// + /// 描述: + /// 作者:synjones + /// 时间:2022-04-20 21:30:28 + /// + [SugarTable("unit_role1adsfa")] + public partial class Role + { + /// + /// 角色 + /// + [SugarColumn(IsPrimaryKey = true, IsIdentity = true, ColumnName = "MYID")] + public int id { get; set; } + + /// + /// 角色名称 + /// + public string name { get; set; } + + /// + /// 创建时间 + /// + public DateTime createTime { get; set; } + + } + + + /// + /// 描述: + /// 作者:synjones + /// 时间:2022-04-21 14:35:09 + /// + [SugarTable("unit_operator_roleadfaa")] + public partial class OptRole + { + /// + /// + /// + [SugarColumn(IsPrimaryKey = true,ColumnName ="MYID")] + public long id { get; set; } + + /// + /// + /// + [SugarColumn(ColumnName="AID")] + public string operId { get; set; } + + [SugarColumn(ColumnName = "bid")] + public int roleId { get; set; } + [SugarColumn(ColumnName = "ct")] + public string CreateTime { get; set; } + [SugarColumn(ColumnName = "oid")] + public string OrgId { get; set; } + + + } + } +}