您知道任何 软件 或 在线 Web 应用程序 或 Visual Studio 中的 工具 可以执行此转换吗?
请有人帮助我,我无法转换这个复合体(像这样的 Linq : From x in UserRoleid Select x ...Where ...)
var Result = userRoleIds.Select(s => (s.UserId, actionFullNames.Select(actionFullName
=> (actionFullName, permissions.Any(A => s.RoleIds.Contains(A.RoleId) &&
A.ActionFullName.Equals(actionFullName, StringComparison.OrdinalIgnoreCase))))
.ToArray())).ToArray();
例如:
context.table.Where(a => a.FK.ID == b.Number).Sum(a => a.sumPrice)
=====To=This=====>
(from a in context.table where a.FK.ID == b.Number select a.sumPrice).Sum()
我不知道有任何工具可以做到这一点。另外,由于您没有给出确切的模型,我假设您有这些模型
public class UserRole
{
public int UserRoleId { get; set; }
public int UserId { get; set; }
public int[] RoleIds { get; set; }
}
public class Permission
{
public int RoleId { get; set; }
public string ActionFullName { get; set; }
}
那么你的合成糖就会像
var result = (from userRole in userRoles
select new
{
userRole.UserId,
SomeTuple = (from actionFullName in actionFullNames
select new
{
ActionFullName = actionFullName,
IsMatch = (from permission in permissions
where userRole.RoleIds.Contains(permission.RoleId) &&
permission.ActionFullName.Equals(actionFullName,
StringComparison.OrdinalIgnoreCase)
select permission).Any()
}).ToArray()
}).ToArray();
我认为我们不能将 Any() 转换为语法糖