我有这段代码。Linq列表到逗号的字符串
var userListResult = from user in userList
from role in user.AspNetUsers.AspNetRoles
where role.Id == ((int)model.Roles).ToString()
select new UserManageViewModel.UserViewModel()
{
Id = user.UserId,
Email = user.AspNetUsers.Email,
Name = user.FirstName + " " + user.LastName,
IsAdviser = user.AspNetUsers.AspNetRoles.AsQueryable().Any(r => r.Id == ((int)eCareRoles.Adviser).ToString()),
IsAdmin = user.AspNetUsers.AspNetRoles.AsQueryable().Any(r => r.Id == ((int)eCareRoles.Admin).ToString()),
Company = user.UserCompanies != null ? user.UserCompanies.Name : String.Empty,
Role = model.Roles,
ListIfRoles = user.AspNetUsers.AspNetRoles.Select(x => x.Name).Aggregate((i, j) => i + "," + j)
};
我需要用逗号获得ListIfRoles字符串。但我总是得到错误 “LINQ to Entities does not recognized the method'System.String Aggregate [String](System.Collections.Generic.IEnumerable 1[System.String], System.Func
3 [System.String,System.String,System.String])''方法,并且这种方法不能转换成商店表达式。“
我试过string.Join(“,”,列表),尝试转换为数组,然后加入或聚合 - 但它总是错误。
另外我试过这个`用户。
AspNetUsers.AspNetRoles.Select(x => x.Name).AsEnumerable().Aggregate((i, j) => i + "," + j)
但错误再次。 请帮忙。
'的string.join( “”,user.AspNetUsers.AspNetRoles.Select(X => x.Name).ToArray())' - 加入带有一个数组。 – john
“LINQ to Entities does not recognized the method'System.String Join(System.String,System.String [])'method,this method can not be translated into into store expression。” –