Linq中的查询

时间:2012-03-26 15:59:51

标签: sql linq asp.net-mvc-3

我想创建这个疯狂的查询并用LINQ语法

编写它
select ContaId 
  from Contact 
  where 
    ContaMail = "test@test.com" 
    and
    ContaId in (
      select ContaId 
      from Participant
      where 
        ParticipantId = "test")

我是ASP MVC的新手,所以请帮忙。

感谢。

1 个答案:

答案 0 :(得分:1)

首先,我会得到查询数据的“IN”部分......

        var participants = from p in participantsDataSource 
where p.ParticipantId == "test"
    select p.ContaId;

然后我会使用为'IN'标准设置的参与者进行主查询....

var contacts = from c in contactsDataSource where c.ContaMail == "test@test.com"
&& participants.Contains(c.ContaId) 
select c.ContaId;

...正如galacticCowboy指出的那样,你可以在一个带有连接的查询中完成所有操作,就像这样......

var contacts = from c in contactsDataSource
        join p in participantsDataSource
        on c.ContaId equals p.ContaId
        where c.ContaMail == "test@test.com"
        && p.participantId == "test"
        select c.ContaId;