LINQ:使用多个from和Join错误
本文关键字:from Join 错误 LINQ | 更新日期: 2023-09-27 18:12:40
以下LINQ:
var result = from u in db.userdetails
from b in db.bids
join x in db.Others on b.UserId equals x.UserId into others
from o in others.DefaultIfEmpty()
from p in db.Products
where u.UserID.Equals(b.UserId)
&& p.BidId.Equals(b.BidId)
&& b.DocId == id
给出错误:
连接子句中一个表达式的类型不正确。调用"GroupJoin"时类型推断失败。
通过重新组织join和where子句,您可能会有更好的运气(以及更易于维护的代码)。在LINQ中,你不需要总是在所有from子句之后加上where子句:
var result =
from u in db.userdetails
join b in db.bids on u.UserID equals b.UserId
where b.DocID == id
join p in db.Products
on b.BidID equals p.BidId
join x in db.Others on b.UserId equals x.UserId into others
from o in others.DefaultIfEmpty()
Select ???
然后,如果你在实体之间有适当的关联,你可以避免所有的连接,直接通过导航对象图来投影到所需的形状。