2017-05-31 4 views
-3

私はこのコードを持っています。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は、メソッド 'System.String Aggregate [String](System.Collections.Generic.IEnumerable 1[System.String], System.Func 3 [System.String、System.String、System.String])'メソッドを認識しません。このメソッドをストア式に変換することはできません。

私はstring.Join( "、"、list)を試しましたが、配列に変換してからJoinまたはAggregateしようとしましたが、常にエラーです。

また、私はこの `ユーザを試しました。

AspNetUsers.AspNetRoles.Select(x => x.Name).AsEnumerable().Aggregate((i, j) => i + "," + j) 

もう一度エラーが発生します。 お願いします。

+0

'string.Joinは( ""、user.AspNetUsers.AspNetRoles.Select(X => x.Name).ToArrayは())' - 参加は配列を受け取り。 – john

+0

"LINQ to Entitiesは、 'System.String Join(System.String、System.String [])'メソッドのメソッドを認識せず、このメソッドをストア式に変換することはできません。 –

答えて

-2

あなたが試すことができ、

String.join(",",user.AspNetUsers.AspNetRoles.Select(x => x.Name).ToArray()) 
+1

"LINQ to Entitiesは、 'System.String Join(System.String、System.String [])'メソッドのメソッドを認識せず、このメソッドをストア式に変換することはできません。 –

関連する問題