var itemSet = from item in da.GetList<Models.account>()
join file in objFileStorageList
on item.account_id equals file.parent_id into objFile
from fileItem in objFile.DefaultIfEmpty()
where item.company != null && item.company.company_id == 123
orderby item.updatedDate descending
select
new
{
Id = item.account_id,
RefNo = item.refNo,
StartDate = item.StartDate ,
EndDate = item.EndDate ,
Comment = item.comment,
FileStorageID = fileItem != null ? fileItem.fileStorage_id : -1,
Identification = fileItem != null ? fileItem.identifier : null,
fileName = fileItem != null ? fileItem.file_nm : null
};
Это повышает сообщение об ошибке, когда я пытаюсь перечислить посредством результата набора запроса Linq выше.
LINQ к Объектам не распознает метод 'Система. Наборы. Универсальный. IEnumerable
1[SCEFramework.Models.fileStorage] DefaultIfEmpty[fileStorage](System.Collections.Generic.IEnumerable
1 [SCEFramework. Models.fileStorage])', метод и этот метод не могут быть переведены в выражение хранилища
foreach (var item in itemSet)
{
string itemRef= item.RefNo;
}
Предложите меня любые решения.Заранее спасибо.
Я думаю, что проблема заключается в следующем предложении from:
from fileItem in objFile.DefaultIfEmpty()
Обратите внимание, что ваш запрос LINQ может быть выполнен только во время выполнения сбора результатов. Итак, хотя вы думаете, что ваше исключение находится в foreach, на самом деле оно находится в вашем выражении. Это не работает, потому что возможное нулевое значение objFile.DefaultIfEmpty ()
не может быть преобразовано в IEnumerable
.
Попробуйте удалить вызов DefaultIfEmpty
и посмотрите, что произойдет.