Знаете ли вы какое-либо программное обеспечение, онлайн-веб-приложение или инструмент в Visual Studio, который может выполнить это преобразование?
И пожалуйста, помогите мне кто-нибудь, я не могу преобразовать этот комплекс (в Linq Like This: From x в UserRoleid Выберите x... Где...)
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,
IsMatched = (from permission in permissions
where userRole.RoleIds.Contains(permission.RoleId) &&
permission.ActionFullName.Equals(actionFullName,
StringComparison.OrdinalIgnoreCase)
select permission).Any()
}).ToArray()
}).ToArray();
Этот стиль не поддерживает все методы linq (например, Any()).
Я не верю, что вы даже правильно упомянули членов класса :)))) Спасибо.
Если предположить, что
userRoleIds— это какой-тоIEnumerable, использование.Select()уже является вызовом Linq. Так что же во что нужно преобразовать (и почему)? Пожалуйста, будьте более конкретны.