sunkaixuan
2 years ago
6 changed files with 403 additions and 22 deletions
@ -0,0 +1,129 @@ |
|||
using SqlSugar; |
|||
using System; |
|||
using System.Collections.Generic; |
|||
using System.Linq; |
|||
using System.Text; |
|||
using System.Threading.Tasks; |
|||
|
|||
namespace OrmTest |
|||
{ |
|||
public class UOneManyMany5 |
|||
{ |
|||
|
|||
public static void init() |
|||
{ |
|||
|
|||
var db = NewUnitTest.Db; |
|||
db.CodeFirst.InitTables<Student_004, School_004, Room_004, Desk_004, Book_004>(); |
|||
db.DbMaintenance.TruncateTable<Student_004, School_004, Room_004, Desk_004, Book_004>(); |
|||
|
|||
var id1 = Guid.NewGuid(); |
|||
var id2 = Guid.NewGuid(); |
|||
var id3 = Guid.NewGuid(); |
|||
var id4 = Guid.NewGuid(); |
|||
db.Insertable(new Student_004() { sid=Guid.NewGuid(), StudentId = id1, Name = "北大jack", SchoolId = id1 }).ExecuteCommand(); |
|||
db.Insertable(new Student_004() { sid=Guid.NewGuid(), StudentId = id2, Name = "青华jack", SchoolId = id2 }).ExecuteCommand(); |
|||
|
|||
db.Insertable(new School_004() { scid=Guid.NewGuid(), scid2 = id1, schname = "北大" }).ExecuteCommand(); |
|||
db.Insertable(new School_004() { scid = Guid.NewGuid(),scid2 = id2, schname = "青华" }).ExecuteCommand(); |
|||
db.Insertable(new Book_004() { StudentId = id1, Name = "数学001" }).ExecuteCommand(); |
|||
db.Insertable(new Book_004() { StudentId = id2, Name = "语文002" }).ExecuteCommand(); |
|||
|
|||
|
|||
db.Insertable(new Room_004() { roomId = id1, schoolId = id1, roomName = "北大01室" }).ExecuteCommand(); |
|||
db.Insertable(new Room_004() { roomId = id2, schoolId = id1, roomName = "北大02室" }).ExecuteCommand(); |
|||
db.Insertable(new Room_004() { roomId = id3, schoolId = id2, roomName = "青华03室" }).ExecuteCommand(); |
|||
db.Insertable(new Room_004() { roomId = id4, schoolId = id2, roomName = "青华04室" }).ExecuteCommand(); |
|||
|
|||
db.Insertable(new Desk_004() { roomId = id1, deskid = id1, deskName = "北大01室_01" }).ExecuteCommand(); |
|||
db.Insertable(new Desk_004() { roomId = id2, deskid = id2, deskName = "北大02室_01" }).ExecuteCommand(); |
|||
db.Insertable(new Desk_004() { roomId = id3, deskid = id3, deskName = "青华03室_01" }).ExecuteCommand(); |
|||
db.Insertable(new Desk_004() { roomId = id4, deskid = id4, deskName = "青华04室_01" }).ExecuteCommand(); |
|||
|
|||
|
|||
var list = db.Queryable<Student_004>() |
|||
.Includes(x => x.school_001 ) |
|||
.Includes(x=>x.books) |
|||
.ToList(); |
|||
|
|||
|
|||
db.DbMaintenance.TruncateTable<Student_004, School_004, Room_004, Desk_004,Book_004>(); |
|||
foreach (var item in list) |
|||
{ |
|||
item.sid = Guid.Empty; |
|||
item.SchoolId = Guid.Empty; |
|||
item.school_001.scid = Guid.Empty; |
|||
foreach (var z in item.books) |
|||
{ |
|||
z.bookid = Guid.Empty; |
|||
z.StudentId = Guid.Empty; |
|||
} |
|||
} |
|||
db.InsertNav(list.First()) |
|||
.Include(x=>x.books) |
|||
.Include(x=>x.school_001) |
|||
.ExecuteCommand(); |
|||
|
|||
db.InsertNav(list.Last()) |
|||
.Include(x=>x.books) |
|||
.Include(x=>x.school_001) |
|||
.ExecuteCommand(); |
|||
|
|||
} |
|||
|
|||
[SugarTable("Student_005")] |
|||
public class Student_004 |
|||
{ |
|||
[SqlSugar.SugarColumn(IsPrimaryKey =true)] |
|||
public Guid sid { get; set; } |
|||
public Guid StudentId { get; set; } |
|||
public string Name { get; set; } |
|||
|
|||
public Guid SchoolId { get; set; } |
|||
[SqlSugar.Navigate(SqlSugar.NavigateType.OneToOne,nameof(SchoolId),nameof(School_004.scid2))] |
|||
public School_004 school_001 { get; set; } |
|||
[SqlSugar.Navigate(SqlSugar.NavigateType.OneToMany, nameof(Book_004.StudentId),nameof(StudentId))] |
|||
public List<Book_004> books { get; set; } |
|||
|
|||
} |
|||
|
|||
[SugarTable("Book_005")] |
|||
public class Book_004 |
|||
{ |
|||
[SqlSugar.SugarColumn(IsPrimaryKey = true)] |
|||
public Guid bookid { get; set; } |
|||
public string Name { get; set; } |
|||
public Guid StudentId { get; set; } |
|||
} |
|||
|
|||
[SugarTable("School_005")] |
|||
public class School_004 |
|||
{ |
|||
[SqlSugar.SugarColumn(IsPrimaryKey = true )] |
|||
public Guid scid { get; set; } |
|||
public Guid scid2 { get; set; } |
|||
public string schname { get; set; } |
|||
[SqlSugar.Navigate(SqlSugar.NavigateType.OneToMany, nameof(Room_004.schoolId))] |
|||
public List<Room_004> rooms { get; set; } |
|||
} |
|||
|
|||
[SugarTable("Room_005")] |
|||
public class Room_004 |
|||
{ |
|||
[SqlSugar.SugarColumn(IsPrimaryKey = true )] |
|||
public Guid roomId { get; set; } |
|||
public Guid schoolId { get; set; } |
|||
public string roomName { get; set; } |
|||
[SqlSugar.Navigate(SqlSugar.NavigateType.OneToMany, nameof(Desk_004.roomId))] |
|||
public List<Desk_004> desk { get; set; } |
|||
} |
|||
[SugarTable("Desk_005")] |
|||
public class Desk_004 |
|||
{ |
|||
[SqlSugar.SugarColumn(IsPrimaryKey = true)] |
|||
public Guid deskid { get; set; } |
|||
public string deskName { get; set; } |
|||
public Guid roomId { get; set; } |
|||
} |
|||
} |
|||
} |
@ -0,0 +1,222 @@ |
|||
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(); |
|||
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(); |
|||
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()).ToList(); |
|||
if (list.Count != 2) |
|||
{ |
|||
throw new Exception("unit error"); |
|||
} |
|||
var list3 = db.Queryable<OperatorInfo>() |
|||
.Includes(x => x.Roles).Where(x => x.Roles.Count()==0).ToList(); |
|||
if (list3.Count != 1) |
|||
{ |
|||
throw new Exception("unit error"); |
|||
} |
|||
var list2=db.Queryable<OperatorInfo>() |
|||
.Includes(x => x.Roles.MappingField(z=>z.name,()=>x.username).ToList()) |
|||
.ToList(); |
|||
|
|||
var list4 = db.Queryable<OperatorInfo>() |
|||
.Includes(x => x.Roles.Skip(10).Take(1).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; } |
|||
|
|||
|
|||
} |
|||
} |
|||
} |
Loading…
Reference in new issue