在ActiveRecord中将SQL转换为linq

时间:2011-02-24 03:49:00

标签: linq nhibernate castle-activerecord

我有一个语句SQL

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

在项目asp.net中使用activerecord:

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

这与项目

正确无误

但我写了

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

什么不起作用。

2 个答案:

答案 0 :(得分:1)

我发现了这个,但我不知道它有多好。 http://www.sqltolinq.com/

答案 1 :(得分:0)

这应该有效但不是最佳的。

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