如何将sql转换为linq

时间:2011-11-11 20:13:43

标签: linq linq-to-sql linq-to-entities

使用ef4

iam尝试将此sql转换为linq但无法

select s.IdSimcard ,s.Imei from dbo.SimCard s 
where s.Imei  not in (select distinct d.Imei  from dbo.SimCard d  inner join dbo.Configuracion c
on c.SinCard_IdSincard = d.IdSimcard
where c.Estado = 'Activo' )

到目前为止,我在linqpad的帮助下有了这个,我不能再使用linquer来激活代码了

(from s in SimCard where  s.Imei.Contains( (from c in Configuracion
                             join d in SimCard on c.SinCard_IdSincard equals d.IdSimcard
                             where c.Estado == "Activo"
                             select new { d.Imei }).Distinct())
                             select new {  s.IdSimcard, s.Imei })

我读过EF4中不支持的“不在”,什么是相同的?

我在linqpad中收到此错误

'string.Contains(字符串)'    - 参数1:无法将'System.Linq.IQueryable'转换为'string'

1 个答案:

答案 0 :(得分:1)

如果我理解您的问题,您可以使用Except(...)扩展方法(在System.Linq命名空间中)而不是Not Contains(...)