linq中的'IN'子句

时间:2014-03-22 12:46:11

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

我有一个表名" actorlist"列' id'和' ActorName'其中包含50个行数,还有另一个表名" addrecord"与列' iid','演员1','演员2','演员3','演员4'。 ' ID'列"演员名单"并且' iid'列" addrecord"不一样。

我必须找到所有那些' ActorName'来自"演员名单"不属于演员1','演员2','演员3','演员4'柱。 LInq将查询此结果的内容是什么?请注意" addrecord"表只有一行。

请帮助我.....

1 个答案:

答案 0 :(得分:1)

这是一个可能的LINQ来获得你所描述的问题(方法语法):

DataContext.actorlists
           .Select(o => o.ActorName)
           .Where(o => !DataContext
                             .addrecords
                             .Any(p => p.Actor1 == o.ActorName ||
                                       p.Actor2 == o.ActorName ||
                                       p.Actor3 == o.ActorName ||
                                       p.Actor4 == o.ActorName))

或者如果您更喜欢查询语法,可以试试这个:

from a in DataContext.actorlists
where !(from b in DataContext.addrecords
        where b.Actor1 == a.ActorName
              || b.Actor2 == a.ActorName
              || b.Actor3 == a.ActorName
              || b.Actor4 == a.ActorName).Any()
select a.ActorName
相关问题