Ich arbeite an einer App in MVC4 und Entity Framework 5 und stieß kürzlich auf diese Ausnahme beim Ausführen meiner Abfrage.Problemumgehung wegen fehlender Unterstützung für PadLeft in EF5.x?
{ "LINQ to Entities nicht die Methode 'System.String PadLeft (Int32, Char)' Methode erkennen, und diese Methode kann nicht in einen Laden Ausdruck übersetzt werden."}
Als ich habe ähnliche Fehler in der Vergangenheit durchlaufen, ich habe gerade eine Variable außerhalb der Abfrage gemacht und dann die Variable in der LINQ-Anweisung verwendet. Leider manipuliere ich in diesem Fall die Zeilenergebnisse, daher bin ich mir nicht sicher, wie ich das anstellen soll oder ob das die beste Methode ist. Jede Hilfe wäre willkommen. Meine Frage ist unten:
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();
Können Sie eine zusätzliche berechnete Spalte in der Tabelle, die das 'entity_program' mit der entsprechenden Anzahl von 0s füllt? – cfeduke
das ist eine Möglichkeit, aber ich würde etwas bevorzugen, das wiederverwendbar ist. Ich möchte keine zusätzliche Spalte für jede Spalte erstellen, die ich puffern muss, wenn ich es vermeiden kann. – Elsimer