У меня есть сценарий, аналогичный следующему:
Представьте, что у меня есть три класса
public class User
{
public string Id {get;set;}
}
public class FollowableUser
{
public string Id{get;set;}
public IEnumerable<string> FollowingUserIds {get;set;}
}
public class Event
{
public string Id{get;set;}
public IEnumerable<string> TaggedFollowableUsers {get;set;
}
Что я хотел бы сделать, это иметь возможность запрашивать по идентификатору пользователяи вернули все события (или, по крайней мере, идентификаторы событий).
edit Я пробовал это, но не знал, куда идти в уменьшенной части:
AddMap<Event>(events => from evt in events
from fUser in evt.TaggedFollowableUsers
select new
{
FUserId = fUser,
EventId = evt.Id,
UserId = (string)null
});
AddMap<FollowableUser>(fUsers => from fUser in fUsers
from followingUser in child.FollowedingUserIds
select new
{
FUserId = fUser.Id,
EventId = (string) null,
UserId = followingUser
});
Reduce = results => from result in results
group result by result.FUserId
into g
select new
{
FUserId= g.Key,
EventId = g.Select(x => x.EventId) // not sure what to do from here
};
Возможно ли это сделать с одним индексируемым индексом или мне нужно сделать несколько вызовов?
Спасибо,
Мэтт