using MongoDB.Bson.Serialization.Attributes; using MongoDB.Bson; using SqlSugar.MongoDb; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using SqlSugar; using System.ComponentModel; namespace MongoDbTest { public class QueryJson9 { internal static void Init() { var db = DbHelper.GetNewDb(); db.CodeFirst.InitTables(); db.DbMaintenance.TruncateTable(); InsertSampleUser(db); InsertSampleUser2(db); var val0 = db.Queryable().ToList(); var val1 = db.Queryable().Where(it => it.Name.ToString().Contains("部")).ToList(); if (val1.Count != 1) Cases.ThrowUnitError(); var val2 = db.Queryable().Where(it => it.EntInfo.Any(x => x.DeptName.Any())).ToList(); if (val2.Count != 1) Cases.ThrowUnitError(); } private static void InsertSampleUser(SqlSugarClient db) { var user = new SysUser() { Name = "部", EntInfo = new List() { new SysEntDept() { DeptId = new List() { ObjectId.GenerateNewId().ToString() }, EntId = ObjectId.GenerateNewId().ToString(), DeptName = new List() { "研发部" }, } } }; db.Insertable(user).ExecuteCommand(); } private static void InsertSampleUser2(SqlSugarClient db) { var user = new SysUser() { Name = "xx", EntInfo = new List() { new SysEntDept() { DeptId = new List() { ObjectId.GenerateNewId().ToString() }, EntId = ObjectId.GenerateNewId().ToString(), DeptName = null, } } }; db.Insertable(user).ExecuteCommand(); } private static void InsertSampleUser3(SqlSugarClient db) { var user = new SysUser() { Name = "xx", EntInfo = new List() { new SysEntDept() { DeptId = new List() { ObjectId.GenerateNewId().ToString() }, EntId = ObjectId.GenerateNewId().ToString(), DeptName =new List(){ }, } } }; db.Insertable(user).ExecuteCommand(); } /// /// 用户表 /// [SugarTable("sys_user", "用户表")] [Tenant("0")] public class SysUser : MongoDbBase { /// /// 用户类型(00系统用户) /// [SugarColumn(Length = 2, ColumnDescription = "用户类型(00系统用户)", DefaultValue = "00")] public string UserType { get; set; } = "00"; public string Avatar { get; set; } [SugarColumn(Length = 50, ColumnDescription = "用户邮箱")] public string Email { get; set; } /// /// 手机号 /// public string Phonenumber { get; set; } /// /// 用户性别(0男 1女 2未知) /// public int Sex { get; set; } /// /// 删除标志(0代表存在 2代表删除) /// [SugarColumn(DefaultValue = "0")] public int DelFlag { get; set; } /// /// 最后登录IP /// [SugarColumn(IsOnlyIgnoreInsert = true)] public string LoginIP { get; set; } /// /// 部门Id /// [SugarColumn(DefaultValue = default, ColumnDataType = nameof(ObjectId))] public string DeptId { get; set; } /// /// 企业集合 /// [SugarColumn(IsJson = true)] public List EntInfo { get; set; } = new(); /// /// 是否已删除 /// public bool IsAvaliable { get; set; } = true; #region 表额外字段 /// /// 拥有角色个数 /// //[SugarColumn(IsIgnore = true)] //public int RoleNum { get; set; } [SugarColumn(IsIgnore = true)] public string DeptName { get; set; } [SugarColumn(IsIgnore = true)] public string WelcomeMessage { get { int now = DateTime.Now.Hour; if (now > 0 && now <= 6) { return "午夜好"; } else if (now > 6 && now <= 11) { return "早上好"; } else if (now > 11 && now <= 14) { return "中午好"; } else if (now > 14 && now <= 18) { return "下午好"; } else { return "晚上好"; } } } [SugarColumn(IsIgnore = true)] public string WelcomeContent { get; set; } /// /// 角色id集合 /// [SugarColumn(IsIgnore = true)] public List RoleIds { get; set; } public string Name { get; set; } #endregion } /// /// 用户表里企业与部门信息 /// public class SysEntDept { /// /// 企业Id /// [BsonRepresentation(BsonType.ObjectId)] [SugarColumn(ColumnDataType = nameof(ObjectId))] public string EntId { get; set; } /// /// 企业名称 /// public string EntName { get; set; } /// /// 部门Id集合 /// [BsonRepresentation(BsonType.ObjectId)] [SugarColumn(IsJson = true, ColumnDataType = nameof(ObjectId))] public List DeptId { get; set; } = new(); /// /// 部门名称集合 /// [SugarColumn(IsJson = true)] public List DeptName { get; set; } = new(); /// /// 部门备注集合 /// [SugarColumn(IsJson = true)] public List DeptRmk { get; set; } = new(); } } }