diff --git a/Src/Asp.NetCore2/SqlSeverTest/UserTestCases/UnitTest/ManyToManyFilter.cs b/Src/Asp.NetCore2/SqlSeverTest/UserTestCases/UnitTest/ManyToManyFilter.cs new file mode 100644 index 000000000..3347fdd29 --- /dev/null +++ b/Src/Asp.NetCore2/SqlSeverTest/UserTestCases/UnitTest/ManyToManyFilter.cs @@ -0,0 +1,223 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using SqlSugar; +namespace OrmTest +{ + internal class UnitManyToManyFilteadfa + { + 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 = "admin" + + }).ExecuteReturnIdentity(); + var id2 = db.Insertable(new Role() + { + id = 2, + createTime = DateTime.Now, + name = "admin" + + }).ExecuteReturnIdentity(); + db.Insertable(new OptRole() { operId = "1", roleId = id }).ExecuteCommand(); + db.Insertable(new OptRole() { id = 2, operId = "2", roleId = id2 }).ExecuteCommand(); + + var list1 = db.Queryable() + .Includes(x => x.Roles) + .ToList(); + var list2 = db.Queryable() + .Includes(x => x.Roles).Where(x => x.Roles.Any()).ToList(); + + db.CurrentConnectionConfig.MoreSettings = new ConnMoreSettings + { + IsAutoDeleteQueryFilter=true + }; + db.QueryFilter.AddTableFilter(x => x.id == 1); + + var xxx = db.Queryable().ToList (); + + var list3 = db.UpdateNav(list1) + .Include(x => x.Roles) + .ExecuteCommand(); + + } + + /// + /// 描述: + /// 作者:synjones + /// 时间:2022-04-20 21:30:28 + /// + [SugarTable("unit_operatorinasdfo2a")] + public partial class OperatorInfo + { /// + /// 多角色 + /// + [Navigate(typeof(OptRole), nameof(OptRole.operId), nameof(OptRole.roleId))]//名字换 + public List Roles { get; set; } + /// + /// 主键 + /// + [SugarColumn(IsPrimaryKey = true)] + 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_rdfoldde1")] + public partial class Role + { + /// + /// 角色 + /// + [SugarColumn(IsPrimaryKey = true, IsIdentity = true)] + 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_role23213sd")] + public partial class OptRole:IdDelete + { + /// + /// + /// + [SugarColumn(IsPrimaryKey = true,IsIdentity =true)] + public int id { get; set; } + + /// + /// + /// + public string operId { get; set; } + + /// + /// + /// + public int roleId { get; set; } + + } + } + + public interface IdDelete + { + public int id { get; set; } + } +} \ No newline at end of file