-1
    var users = from u in db.Users.Include("UserLogins")
      join ul in db.UserLogins on u.UserId equals ul.UserId
      join ua in db.UserActions ON ul.UserLoginId = ua.UserLoginId
      where u.IsActive = true
      group new { ul, ua }
        by new {u.UserId} into proj

    select new 
    {
    UserId = (Int32)y.Key.UserId,
        LoginDates = ????????
    };

投影で日付リストのコレクションを返すことは可能ですか?

そうではないと思いますが、カンマ区切りの日付のリストはどうですか?

何かのようなもの:

"DateTime1, Datetime2, DateTime3"
4

2 に答える 2

0

投影で日付リストのコレクションを返すことは可能ですか?

確かに、各グループ化が実装されIEnumerableているので、次を使用できますToList

select new 
{
    UserId = (Int32)y.Key.UserId,
    LoginDates = y.Select( i => i.LoginDate).ToList()
};

カンマで区切られた日付のリストはどうですか?

使用するだけString.Joinです:

var users = (from u in db.Users.Include("UserLogins")
  join ul in db.UserLogins on u.UserId equals ul.UserId
  join ua in db.UserActions ON ul.UserLoginId = ua.UserLoginId
  where u.IsActive = true
  group new { ul, ua }
    by new {u.UserId} into proj)
.AsEnumerable()  // Hydrate the query
.Select(y=> new 
{
    UserId = (Int32)y.Key.UserId,
    LoginDates = string.Join(",",
                             y.Select( i => i.LoginDate
                                             .ToString("yyyy-MM-dd")
                                     ).ToArray()
                            )
});
于 2013-06-10T20:28:33.143 に答える