Добрый день,
Мой код генерирует ошибку во время выполнения, и я не уверен, как это исправить.Мы будем благодарны за любую помощь.
Наш код вызывает второй метод преобразования ниже, передавая список «предложений».Предложение является объектом модели EDMX.Первый метод Convert берет объект и преобразует его в класс DTO, который затем возвращает обратно.
При запуске программы возникает следующая ошибка:
LINQ to Entities делаетне распознается метод метода "... Domain.Holdings.OfferDto Convert (... Repository.Offer, System.Nullable`1 [System.Int32])", и этот метод нельзя преобразовать в выражение хранилища.
Код выглядит следующим образом:
public class OfferDtoMapping
{
public static OfferDto Convert(Offer offer, int? participantId)
{
if (offer == null)
throw new ArgumentException("The Offer object supplied for conversion cannot be null");
var unitCost = offer.UnitCost;
if (offer.Trust.Company.AllowInterDiv && participantId.HasValue)
{
Assign another value to unitCost...
}
var output = new OfferDto
{
Assign the offer properties to the OfferDto properties...
};
return output;
}
public static IList<OfferDto> Convert(IQueryable<Offer> offerList)
{
return offerList == null ? new List<OfferDto>() : offerList.Select(ol => Convert(ol, null)).ToList();
}
}
Ошибка в этой строке:
return offerList == null ? new List<OfferDto>() : offerList.Select(ol => Convert(ol, null)).ToList();
Я подозреваю, что ошибка связана с тем, что япроецирование offerList над методом, принимающим 2 входных параметра.Мы попытались передать 0 вместо NULL (потому что изначально думали, что это проблема), но все равно получили похожее сообщение об ошибке.
Чтобы сохранить согласованность в нашем решении, мы хотим продолжать использовать метод Select вместо заменыэто с помощью оператора foreach.
Есть ли способ использовать метод Select в нашей текущей ситуации?
Заранее спасибо.