Sto lavorando a un'app in MVC4 e Entity Framework 5 e di recente ho riscontrato questa eccezione durante l'esecuzione della mia query.Qualsiasi soluzione alternativa per la mancanza di supporto per PadLeft in EF5.x?
{ "LINQ to Entities non riconosce il metodo di 'System.String PadLeft (Int32, Char)' metodo, e questo metodo non può essere tradotto in un'espressione negozio."}
Quando ho ho incontrato errori simili in passato, ho appena creato una variabile al di fuori della query e poi ho usato la variabile nell'istruzione LINQ. Sfortunatamente, in questo caso sto manipolando i risultati della riga, quindi non sono sicuro di come procedere o se è il metodo migliore. Qualsiasi aiuto sarebbe apprezzato. La mia domanda è qui sotto:
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();
Si può creare una colonna calcolata aggiuntiva sulla tabella che riempie il 'entity_program' con il numero appropriato di 0s? – cfeduke
questa è una possibilità, ma preferirei qualcosa che sia riutilizzabile. Non voglio creare una colonna aggiuntiva per ogni colonna che ho bisogno di pad se posso evitarlo. – Elsimer