Я работаю над приложением в MVC4 и Entity Framework 5 и недавно столкнулся с этим исключением при выполнении моего запроса.Любое обходное решение из-за отсутствия поддержки PadLeft в EF5.x?
{ "LINQ к Entities не распознает метод 'System.String PadLeft (Int32, Char)' метод, и этот метод не может быть переведен в выражение магазина."}
Когда я столкнулись с аналогичными ошибками в прошлом, я только что сделал переменную вне запроса, а затем использовал переменную в операторе LINQ. К сожалению, в этом случае я манипулирую результаты строки, поэтому я не уверен, как это сделать, или если это лучший метод. Любая помощь будет оценена по достоинству. Мой запрос ниже:
IQueryable<System.String> LEAPrograms = db.Datamart_Draft
.Where(where => where.snapshot_id == snapshot_id
&& !String.IsNullOrEmpty(where.entity_program))
.Select(sel => (sel.entity_program.PadLeft(PROGRAMLENGTH, '0'))).Distinct();
Можете ли вы сделать дополнительный вычисленный столбец на таблице, который заполняет 'entity_program' с соответствующим числом 0s? – cfeduke
это возможность, но я бы предпочел что-то многоразовое. Я не хочу создавать дополнительный столбец для каждого столбца, который мне нужно заполнить, если я смогу его избежать. – Elsimer