在Linq中用in子句中的计算字符串表示IN sql语句

时间:2013-02-04 10:35:05

标签: sql linq entity-framework

我正在尝试为以下sql查询构建linq查询:

SELECT *
FROM [QryFiles2]
WHERE (left(Demande,6) IN (select NoBVR from tblRequest))

知道QryFiles2是一个实体和tblRequest我也是这样的:

from f in db.QryFiles2
where  f.Demande.Substring(0,6) /* in (select NoBVR from tblRequest) */
select f

问题是我不知道如何使用linq表达sql语句。你不知道如何在不使用原始SQL查询的情况下做到这一点吗?

Nb:我曾尝试使用.contains方法,但我无法使用计算出的子字符串。

1 个答案:

答案 0 :(得分:0)

最后我使用类似的连接语句完成了这个:

from f in db.QryFiles2
join r in db.tblRequest on f.Demande.Substring(0,6) equals r.NoBVR

超级干净超级快速不需要子查询应该考虑之前:-)