出于某种原因,我得到一个“查询正文必须以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”条款中窒息。
答案 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 }