0

RSVP のリストと共にゲストのリストを返す次のクエリがあります。ただし、ユーザーはイベントごとに複数の RSVP を持つことができるため、最新のものだけを入手したいと考えています。RSVPs テーブルには送信日列があります。

from guest in Guests
                join rsvp in RSVPs.Where(o => o.EventID == "1234")
                on guest.UserName equals rsvp.UserName into sr
                from x in sr.DefaultIfEmpty()
                select new
                {
                     guest,
                    x
                }
4

3 に答える 3

0
from guest in Guests
                join rsvp in RSVPs.Where(o => o.EventID == "1234")
                on guest.UserName equals rsvp.UserName into sr
                from x in sr.DefaultIfEmpty()
                select new
                {
                     guest,
                    guest.RSVPs.Where(o => o.EventID =="1234")
                               .OrderByDesc(o=>o.SubmittedDate)
                               .FirstOrDefault()
                }

実際、これも試してみてください。外部キー関係がある場合、適切な RSVP をロードし、接続されたゲスト オブジェクトをロードするという考え方です。

context.RSVPs.Include("Guest").Where(o => o.EventID =="1234").OrderByDesc(o=>o.SubmittedDate).FirstOrDefault()

そうでなければ、これはオプションかもしれません:

(from rsvp in context.RSVP
where rsvp.EventId == "1234"
join guest in context.Guests on rsvp.UserName equals guest.UserName 
select new {rsvp, guest}
orderby desc rsvp.SubmittedDate).FirstOrDefault()
于 2013-03-12T16:42:14.737 に答える
0

日付順に並べて 1:

(from guest in Guests
            join rsvp in RSVPs.Where(o => o.EventID == "1234")
            on guest.UserName equals rsvp.UserName into sr
            from x in sr.DefaultIfEmpty()
            orderby x.RSVPDate desc
            select new
            {
                 guest,
                x
            })
.Take(1);
于 2013-03-06T01:51:08.503 に答える
0

擬似的に -

group x by username into g
select new {
  UserName = g.key // username
  FirstRsvp = g.OrderByDescending(item => item.RsvpDate).FirstOrDefault()
}

この種のことは SQL プロバイダーで定義されていない可能性があるため、これがオブジェクトへの LINQ であることを願っています。それが SQL であり、実装されていない場合、.AsEnumerable() はクエリをメモリに取り込み、そこから L2O になります。

于 2013-03-06T02:15:47.553 に答える