user251553
user251553

Reputation:

Sub Query in LINQ

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

Upvotes: 1

Views: 212

Answers (2)

Craig Stuntz
Craig Stuntz

Reputation: 126587

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;

Upvotes: 3

Justin Niessner
Justin Niessner

Reputation: 245499

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.

Upvotes: 0

Related Questions