tags:

views:

67

answers:

2
+1  Q: 

Sub Query in LINQ

Hi I have an SQL Query as given below

SELECT ui.PageStyleCss
 FROM UserImages ui 
 WHERE ui.UserImageId IN 
  ( SELECT inv.UserImageId 
   FROM Invitation inv
   JOIN InviteeEmails invEmails ON 
   inv.InviteID = invEmails.InviteID
   WHERE invEmails.InviteGUID = @InviteGUID
  )

How can I write this in LINQ?

Thanks

A: 
from ui in db.UserImages
where (from inv in db.Invitations
       join invEmails from InviteeEmails 
           on inv.InviteId equals invEmails.InviteId
       where invEmails.InviteGUID == inviteGUID
       select inv.UserImageId).Contains(ui.UserImageId)
select ui.PageStyleCss

(not sure if it compiles or not)

I have to assume there's a better way...this is pretty much a direct translation.

Justin Niessner
+2  A: 

My wild guess is that you're using LINQ to SQL. It would be nice if you mentioned this, along with details of your model. Guessing at its structure...

var q = from ui in Context.UserImages
        where ui.Invitations.Any(i => i.InviteeEmails.Any(e => e.InviteGuid = inviteGuid))
        select ui.PageStyleCss;
Craig Stuntz