我需要写一个LINQ实体状态,可以得到下面的SQL查询LINQ到实体加入表拥有多个或条件
SELECT RR.OrderId
FROM dbo.TableOne RR
JOIN dbo.TableTwo M ON RR.OrderedProductId = M.ProductID OR RR.SoldProductId= M.ProductID
WHERE RR.StatusID IN (1, 4, 5, 6, 7)
我坚持以下语法
int[] statusIds = new int[] { 1, 4, 5, 6, 7 };
using (Entities context = new Entities())
{
var query = (from RR in context.TableOne
join M in context.TableTwo on new { RR.OrderedProductId, RR.SoldProductId} equals new { M.ProductID }
where RR.CustomerID == CustomerID
&& statusIds.Any(x => x.Equals(RR.StatusID.Value))
select RR.OrderId).ToArray();
}
这给我下面的错误
错误50 join子句中的一个表达式的类型不正确。在“加入”的调用中,类型推断失败。
我该如何做一个表的多条件连接。
那么这工作。我一直在寻找,并发现像RR.OrderedProductId/RR.SoldProductId等于M.ProductID的地方,但这对我的代码无效。 – HaBo 2013-04-08 19:47:07