feature:区域表手动指定多对多关系

This commit is contained in:
2021-04-27 10:42:21 +08:00
parent d93ca8b235
commit f3ad93aabd
3 changed files with 52 additions and 3 deletions

View File

@@ -40,5 +40,28 @@ namespace Ewide.Core.Entity
[Comment("排序")]
public int Sort { get; set; }
/// <summary>
/// 多个区域有多个用户绑定自定义数据
/// </summary>
public ICollection<SysUser> SysUsers { get; set; }
/// <summary>
/// 中间表
/// </summary>
public List<SysUserArea> SysUserAreas { get; set; }
/// <summary>
/// 多个区域有多个角色绑定权限数据
/// </summary>
public ICollection<SysRole> SysRoles { get; set; }
/// <summary>
/// 中间表
/// </summary>
public List<SysRoleArea> SysRoleAreas { get; set; }
/// <summary>
/// 一个区域有多个组织
/// </summary>
public ICollection<SysOrg> SysOrgs { get; set; }
}
}

View File

@@ -1,4 +1,5 @@
using Furion.DatabaseAccessor;
using Ewide.Core.Entity;
using Furion.DatabaseAccessor;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Metadata.Builders;
using System;
@@ -70,6 +71,10 @@ namespace Ewide.Core
/// </summary>
public List<SysRoleDataScope> SysRoleDataScopes { get; set; }
public ICollection<AreaNumber> AreaNumbers { get; set; }
public List<SysRoleArea> SysRoleAreas { get; set; }
/// <summary>
/// 多对多(菜单)
/// </summary>
@@ -97,7 +102,15 @@ namespace Ewide.Core
{
u.HasKey(c => new { c.SysRoleId, c.SysOrgId });
});
entityBuilder.HasMany(p => p.AreaNumbers)
.WithMany(p => p.SysRoles)
.UsingEntity<SysRoleArea>(
u => u.HasOne(c => c.AreaNumber).WithMany(c => c.SysRoleAreas).HasForeignKey(c => c.AreaNumberCode),
u => u.HasOne(c => c.SysRole).WithMany(c => c.SysRoleAreas).HasForeignKey(c => c.SysRoleId),
u =>
{
u.HasKey(c => new { c.SysRoleId, c.AreaNumberCode });
});
entityBuilder.HasMany(p => p.SysMenus)
.WithMany(p => p.SysRoles)
.UsingEntity<SysRoleMenu>(

View File

@@ -1,4 +1,5 @@
using Furion.DatabaseAccessor;
using Ewide.Core.Entity;
using Furion.DatabaseAccessor;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Metadata.Builders;
using System;
@@ -127,6 +128,11 @@ namespace Ewide.Core
/// </summary>
public List<SysUserDataScope> SysUserDataScopes { get; set; }
public ICollection<AreaNumber> AreaNumbers { get; set; }
/// <summary>
/// 多对多中间表(用户-区域 数据范围)
/// </summary>
public List<SysUserArea> SysUserAreas { get; set; }
/// <summary>
/// 配置多对多关系
/// </summary>
@@ -150,6 +156,13 @@ namespace Ewide.Core
{
u.HasKey(c => new { c.SysUserId, c.SysOrgId });
});
entityBuilder.HasMany(p => p.AreaNumbers).WithMany(p => p.SysUsers).UsingEntity<SysUserArea>(
u => u.HasOne(c => c.AreaNumber).WithMany(c => c.SysUserAreas).HasForeignKey(c => c.AreaNumberCode),
u => u.HasOne(c => c.SysUser).WithMany(c => c.SysUserAreas).HasForeignKey(c => c.SysUserId),
u =>
{
u.HasKey(c => new { c.SysUserId, c.AreaNumberCode });
});
}
}
}