通过列表在连接查询中搜索

时间:2015-04-07 11:04:40

标签: c# sql-server linq

我想从列表中存在的连接linq查询中提取这些记录,显然我有这些数据

lst_Unique
table_Prt
table_Exp

但我的查询不起作用

var Query = from c in db.table_Exp join d in db.table_Prt
on c.PrId equals d.PrId
.Where( t=> lst_Unique.Contains(t.PrId))
select new {c.Name,d.Code,d.Age} ;

我该如何解决?实际上在"其中"声明。 谢谢你的帮助

2 个答案:

答案 0 :(得分:4)

您不能像这样混合查询语法和方法语法,查询语法应始终以selectgroupby子句结束。

如果我理解正确,那么这就是你想要的: -

var Query = from c in db.table_Exp join d in db.table_Prt
            on c.PrId equals d.UniprotID
            where lst_Unique.Contains(c.PrId)
            select new {c.Name,d.Code,d.Age} ;

在这里,我认为您希望将Id表的table_Exp属性与唯一列表匹配,但您需要根据您的要求进行相应更改。

答案 1 :(得分:-1)

删除“。”在查询中的位置之前。

var Query = from c in db.table_Exp join d in db.table_Prt
on c.PrId equals d.UniprotID
Where( t=> lst_Unique.Contains(t.PrId))
select new {c.Name,d.Code,d.Age} ;