我有以下表格
Actions
ActionID Action NextActionID
1 Submit 2
2 Forward 3
3 Approve NULL
UserActionRights
UserID ActionID
5 1
6 2
7 3
8 2
我想要这样的输出
Action(Key) UserIDs(List)
1 6
7
2 7
3 "Empty List"
我试过的内容如下
(from a in actions join uar in UserActionRights on a.NextActionID equals uar.ActionID
Select new
{
Action=a.ActionID,
UserIDs=uar.UserID
}).ToList().AsEnumerable().GroupBy(x => x.ActionID).Select(y => new
{
Action = y.Key,
UserIDs = y.Select(tp=>tp.UserID)
}).ToList()
现在当ID = 5的用户登录时,我得到空输出,因为它没有ActionID = 2,3的权限。我需要修改查询以获得所需的结果
答案 0 :(得分:1)
需要一些思考来推断您需要一个特权用户列表来执行关键操作之后的操作:
UserActionRights.Select(u => new
{ ActionId = u.ActionId,
UserIds = UserActionRights.Where(u1 => u1.ActionId > u.ActionId)
.Select(u1 => u1.UserId).ToList()
});
我希望我能理解你。
答案 1 :(得分:0)
Users.GroupBy(u => u.Action.Id, u => u.Id)