SqlSugar/Src/Asp.Net/SqlServerTest/UnitTest/UnitManyToMany.cs
2022-04-29 23:30:09 +08:00

196 lines
4.1 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using SqlSugar;
namespace OrmTest
{
internal class UnitManyToMany
{
public static void Init()
{
var db = NewUnitTest.Db;
db.CodeFirst.InitTables<OperatorInfo, Role, OptRole>();
db.DbMaintenance.TruncateTable<OperatorInfo, Role, OptRole>();
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();
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();
db.Queryable<OperatorInfo>()
.Includes(x => x.Roles).Where(x => x.Roles.Any(z=>z.id==1))
.ToList();
var list=db.Queryable<OperatorInfo>()
.Includes(x => x.Roles).Where(x => x.Roles.Any())
.ToListAsync().GetAwaiter().GetResult();
var list2=db.Queryable<OperatorInfo>()
.Includes(x => x.Roles.MappingField(z=>z.name,()=>x.username).ToList())
.ToList();
}
/// <summary>
/// 描述:
/// 作者synjones
/// 时间2022-04-20 21:30:28
/// </summary>
[SugarTable("unit_operatorinfo")]
public partial class OperatorInfo
{ /// <summary>
/// 多角色
/// </summary>
[Navigate(typeof(OptRole), nameof(OptRole.operId), nameof(OptRole.roleId))]//名字换
public List<Role> Roles { get; set; }
/// <summary>
/// 主键
/// </summary>
[SugarColumn(IsPrimaryKey = true)]
public string id { get; set; }
/// <summary>
/// 姓名
/// </summary>
public string realname { get; set; }
/// <summary>
/// 账号
/// </summary>
public string username { get; set; }
/// <summary>
/// 密码
/// </summary>
public string pwd { get; set; }
/// <summary>
/// 学号
/// </summary>
public string sno { get; set; }
/// <summary>
/// openid
/// </summary>
public string openid { get; set; }
/// <summary>
/// 手机号码
/// </summary>
public string phone { get; set; }
/// <summary>
/// 备注信息
/// </summary>
public string remark { get; set; }
/// <summary>
/// 创建日期
/// </summary>
public DateTime createTime { get; set; }
/// <summary>
/// 状态1启用2禁用
/// </summary>
public int isDisabled { get; set; }
/// <summary>
/// 是否删除1正常2删除
/// </summary>
public int isDel { get; set; }
}
/// <summary>
/// 描述:
/// 作者synjones
/// 时间2022-04-20 21:30:28
/// </summary>
[SugarTable("unit_role1")]
public partial class Role
{
/// <summary>
/// 角色
/// </summary>
[SugarColumn(IsPrimaryKey = true, IsIdentity = true)]
public int id { get; set; }
/// <summary>
/// 角色名称
/// </summary>
public string name { get; set; }
/// <summary>
/// 创建时间
/// </summary>
public DateTime createTime { get; set; }
}
/// <summary>
/// 描述:
/// 作者synjones
/// 时间2022-04-21 14:35:09
/// </summary>
[SugarTable("unit_operator_role")]
public partial class OptRole
{
/// <summary>
///
/// </summary>
[SugarColumn(IsPrimaryKey = true)]
public int id { get; set; }
/// <summary>
///
/// </summary>
public string operId { get; set; }
/// <summary>
///
/// </summary>
public int roleId { get; set; }
}
}
}