实体框架等效于NOT IN

时间:2013-10-28 17:04:06

标签: asp.net sql entity-framework-5 subquery

我有这样的查询

SELECT id 
FROM params 
WHERE valid=1 
    AND id NOT IN (SELECT pid 
                   FROM clientparams 
                   WHERE update = 0 AND client=15) 
LIMIT 25

我正在尝试将其转换为等效的实体框架:

IQueryable<Params> parame = db.Params.Where(p => p.valid.Equals(1)).Except(....);

但我陷入了需要为子查询做出等效的地步

任何想法如何解决?

1 个答案:

答案 0 :(得分:2)

试试这个

IQueryable<Params> parame = db.Params.Where(p => p.valid.Equals(1) && 
    !db.clientParams.Any(e => e.pid == p.id && e.update == 0 && e.client  == 15))
                                     .OrderBy(e => e.id) //Order by any field.
                                     .Take(25);