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"时类型推断失败。

LINQ:使用多个from和Join错误

通过重新组织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 ???

然后,如果你在实体之间有适当的关联,你可以避免所有的连接,直接通过导航对象图来投影到所需的形状。