Это первый раз, когда я пытался выполнить левое соединение через linq, я просмотрел переполнение стека и Google, но все, что я пробовал, не сработало (вполне возможно, из-за моего собственного непонимания). Я пытаюсь сделать следующий запрос:
IQueryable<MyType> pQ = (from prd in dc.ProductDatas
join cc in dc.CategoryProducts.DefaultIfEmpty(defaultCP)
on prd.ProductID equals cc.ProductID
where cc.CatID == CatID
orderby cc.OrdWithinInCategory
select prd);
Я определил defaultCP как:
CategoryProduct defaultCP = new CategoryProduct {ID = 1,CatID = CatID, OrdWithinInCategory = 999};
Я получаю следующую ошибку:
Неподдерживаемая перегрузка, используемая для оператора запроса DefaultIfEmpty.
Описание: во время выполнения текущего веб-запроса произошло необработанное исключение. Пожалуйста, просмотрите трассировку стека для получения дополнительной информации об ошибке и ее возникновении в коде.
Сведения об исключении: System.NotSupportedException: неподдерживаемая перегрузка, используемая для оператора запроса 'DefaultIfEmpty'.
Есть ли что-то очевидное, что я делаю неправильно в своем коде, или мне нужно полностью попробовать другой подход. Любая помощь высоко ценится.