查询转换给出了无法将linq中的错误转换为sql

时间:2019-07-24 09:11:34

标签: c# sql linq linq-to-sql

SELECT [t0].[ID]
FROM [dbo].[test] AS [t0]
WHERE [t0].[CID] = 'abc'
and ([t0].[ID] IN (Select RID from master where CID='abc'))
ORDER BY [t0].[ID]

这是我的查询,我为同一个编写了Linq_to_sql查询。但这让我犯了错误。

我的Linq查询。

Var IdList=db.Master.where(a=>a.CID=="abc").select(p=>new{p.RID}).toList();

var _List =db.test.where(a=>a.CID=="abc" && a.contains(IdList)).OrderBy(s => s.ID).ToList()

为什么抛出错误?

can not convert from 'system.collection.Generic.List<<anonymous type:string RID>>'to 'string'

2 个答案:

答案 0 :(得分:1)

所以我们知道了

Var IdList=db.Master.where(a=>a.CID=="abc").select(p=>p.RID).toList();

var _List =db.test.where(a=>a.CID=="abc" && IdList.contains(a.ID)).OrderBy(s => s.ID).ToList();

答案 1 :(得分:0)

如果仅获取一列,则无需在select中编写new, 而且您还必须使用contains方法来检查上述ID查询中是否存在ID。

var ridList = db.master.where(x => x.cid ==='abc')。select(x => x.rid).tolist();

db.test.where(x => x.cid ==='abc'&& ridList.contains(x.id).OrderBy(s => s.ID).tolist();