Convert SQL to linq in activeRecord

219 Views Asked by At

I have a statement SQL

SELECT * FROM Messages 
WHERE MessageID IN (SELECT MessagesID FROM Publisher WHERE pubID = 22)

in project asp.net using activerecord:

from m in ActiveRecordLinq.AsQueryable<Message>()select m

this correct with project

but I've written

from m in ActiveRecordLinq.AsQueryable<Message>()
where ActiveRecordLinq.AsQueryable<Publisher>().Any(t => t.MessagePublisherSiteKey.MessageID == m.MessageID && t.Publishersiteid == 22)
select m

What isn't working.

2

There are 2 best solutions below

2
On

This should work but isn't optimal.

(From m in ActiveRecordLinq.AsQueryable<Message>()
From t in ActiveRecordLinq.AsQueryable<Publisher>
Where (t.MessagePublisherSiteKey.MessageID == m.MessageID && t.Publishersiteid == 22)
Select m).Distinct();
1
On

I found this, but I don't know how good it is. http://www.sqltolinq.com/