在LINQ to SQL连接中编译简单复合条件的错误

时间:2011-07-05 15:59:10

标签: c# linq-to-sql

出于某种原因,我得到一个“查询正文必须以select子句或group子句结束”编译错误,这对于以下linq-to-sql查询中似乎是一个简单的复合条件:

using (var db = new CaremcDB(Database.Conn))
{
 var taxids = from p in db.ProviderTaxIds 
      join c in db.CustomerProviders
      on customerId equals c.CustomerId && p.Id equals c.ProviderId
      select p;

 return taxids.ToList<ProviderTaxIds>();
}

出于某种原因,它在“&amp;&amp; p.Id equals c.ProviderId”条款中窒息。

2 个答案:

答案 0 :(得分:3)

customerId似乎是查询的外部输入。将其移至where子句。

...
on p.Id equals c.ProviderId  
where customerId == c.CustomerId
select p;

答案 1 :(得分:1)

试试这个,参数名只需要在匿名对象中匹配

join c in db.CustomerProviders on new { customerId, p.Id } equals new { customerId = c.CustomerId, Id= c.ProviderId }