Я думаю, что ваше предложение Where()
(z => z.Type.ToUpper().Contains(dr[13].ToUpper())
и т. Д.) Не может быть преобразовано в запрос типа SQL, поэтому Linq to Entities выдает вышеупомянутую ошибку.
Вы можете исправить ошибку двумя способами: либо преобразовать выражение, чтобы Linq to Entities мог сгенерировать запрос (у меня был некоторый успех с IndexOf()
вместо Contains()
), либо просто загрузить всю таблицу и выполнить поиск локально (очевидно, что второй вариант снизит производительность):
var cercueils = (from y in db.Cercueils select y).ToList(); // load the entire dataset
cercueils = cercueils.Where(z => z.Type.ToUpper().Contains(dr[13].ToUpper())
|| z.AncienType.ToUpper().Contains(dr[13].ToUpper()));
Cercueil cercueil = cercueils.First();