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

query conversion is giving can not convert error in 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'

我们搞定了)

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();

如果您只获取一列,则无需在 select 中写入新内容, 而且你还必须使用 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();