5

すべてのイベントのリストと、ユーザーがイベントに対して持っている可能性があるすべての rsvp を返す必要があります。ただし、渡すユーザー名に関係なく、すべての rsvp を返します。私のlinqクエリ - >

   return (from events in this._context.Context.Events
           join rsvps in (this._context.Context.RSVPs
                          .Where(o=> o.UserName == userName))
           on events equals rsvps.Event into re
           from rsvps in re.DefaultIfEmpty()
           select events);

関係は
Events.EventID = RSVPs.EventID です

4

3 に答える 3

15
from e in _context.Context.Events
join r in _context.Context.RSVPs.Where(o => o.UserName == userName)
    on e.EventID equals r.EventID into g
select new {
    Event = e,
    Rsvps = g
};
于 2013-02-26T07:00:59.837 に答える
1

このようにしてください:

return (from events in this._context.Context.Events
        join rsvps in this._context.Context.RSVPs
        on events.EventIDequals equals rsvps.EventID into re
        from c in re.DefaultIfEmpty()
        where c.UserName == userName
        select new {events,rsvps});
于 2013-02-26T07:11:45.793 に答える
0

イベントの RSVPs プロパティをその場でフィルタリングしたいだけなら、おそらく次のようなものを使用できると思います

var events = _context.Context.Events;

foreach(var event in events)
{
    // Assuming the property is named RSVPs
    event.RSVPs = event.RSVPs.Where(o => o.UserName.Equals(userName));
}

return events;

私はそれをそれほどきれいだとは思わないでしょう。

于 2013-02-26T07:12:22.923 に答える