-1

I have following LINQ statement:

from o in Orders
                    join od in OrderDetails on o.OrderNumber equals od.OrderNumber
                    join r in RMAs on o.OrderNumber equals r.OrderNumber
                    join rd in RMADetails on r.RMAnumber equals rd.RMAnumber
                    from i in Inventory 
                    where( a => ( od.SKU == a.LocalSKU)).DefaultIfEmpty()//error is here
                    where (r.Status != "Pending" && od.Adjustment == false)
                    select new
                    {
                        r.Status,
                        o.Name,
                        o.Company,
                        o.Address,
                        o.Address2,
                        o.City,
                        o.State,
                        o.Country,
                        o.Email,
                        o.Zip,
                        o.Phone,
                        o.ShipName,
                        o.ShipCompany,
                        o.ShipAddress,
                        o.ShipAddress2,
                        o.ShipCity,
                        o.ShipCountry,
                        o.ShipState,
                        o.ShipPhone,
                        o.ShipZip,
                        o.OrderNumber,
                        o.ShippingTotal,
                        OrderDate = o.OrderDate,
                        SerialNumbers = rd.SerialNumbers ?? "",
                        o.SourceOrderID

                    }

It's giving Invalid Where term. What I want to use LEFT OUTER JOIN having SQL Equivalent left join Inventory i on od.SKU = i.LocalSKU

Volatil3
  • 14,253
  • 38
  • 134
  • 263

1 Answers1

1

Try this:

         var qry =  from o in Orders
                    join od in OrderDetails.Where(od=>od.Adjustment == false) on o.OrderNumber equals od.OrderNumber
                    join i in Inventory on i.LocalSKU equals od.SKU into grp
                    from g in grp.DefaultIfEmpty()
                    join r in RMAs.Where(r=>r != 'Pending') on o.OrderNumber equals r.OrderNumber
                    join rd in RMADetails on r.RMAnumber equals rd.RMAnumber
                    select new
                    {
                      //set of columns here
                    };
Maciej Los
  • 8,468
  • 1
  • 20
  • 35