2015-04-07 88 views
-1

连接查询我想提取联接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} ; 

我该如何解决?其实在“where”声明中存在问题。 感谢您的帮助

+0

你的意思是不起作用? –

回答

-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} ; 
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表具有独特的名单,但你需要更改根据您的要求。

+0

请考虑**两个表都有一个字段名称PrId **。您的查询不起作用,错误显示**字符串不包含PrId **。在** Where **声明中,我们不允许使用** t.PrId **。 – user3616494

+0

@ user3616494 - 检查我的更新,我认为'lst_Unique'是一个自定义列表,但它必须是一个列表'根据您的评论,检查这一点,它应该工作。 –

+0

感谢@Rahul Singh的帮助,它仍然无法正常工作。我使用List ,但显示另一个错误**除了Contains()运算符,本地序列不能用于查询运算符的LINQ to SQL实现** – user3616494