LINQ到SQL联接中的简单复合条件编译错误
本文关键字:复合 简单 条件 编译 错误 SQL LINQ | 更新日期: 2023-09-27 18:01:06
由于某种原因,我在以下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>();
}
由于某种原因,它阻塞了"&&p.Id等于c.ProviderId"子句。
customerId
似乎是查询的外部输入。将其移到where
子句中。
...
on p.Id equals c.ProviderId
where customerId == c.CustomerId
select p;
试试这个,参数名称只需要在匿名对象中匹配
join c in db.CustomerProviders on new { customerId, p.Id } equals new { customerId = c.CustomerId, Id= c.ProviderId }