我在 Linq To Entities 中查询多对多关系时遇到问题。我基本上是在尝试使用 Linq 复制此查询:
Select *
FROM Customer
LEFT JOIN CustomerInterest ON Customer.CustomerID = CustomerInterest.CustomerID
LEFT JOIN Interest ON CustomerInterest.InterestID = Interest.InterestID
WHERE Interest.InterestName = 'Football'
我环顾网络,并没有真正找到任何合适的例子来说明如何做到这一点。我得到的最接近的是:
List<Customer> _Customers = (from _LCustomers in _CRM.Customer.Include("CustomerInterest.Interest")
where _LCustomers.CustomerInterest.Any(x => x.Interest.InterestName == "Football")
select _LCustomers).ToList();
这样做的问题是,如果客户有多个兴趣并且其中一个是“足球”,那么所有这些都会被退回。我还查看了具有逆问题的 All(),即只有当他们有一个兴趣并且是足球时才会返回,如果他们有两个并且其中一个不是足球,则不会返回任何内容。
有人有什么想法吗?