Linq to Entities erkennt keine Zeichenfolge. Format oder Verkettung '+'

Ich habe folgenden Code:

using (DBContext context = new DBContext())
{
    myCollection = context.Items.Where(i => i.Type == 1).OrderBy(k => k.Name).Select(w => new
    {
        Alias = w.Name + string.Format("{0}", w.Id),
        Name = w.Name                        
    }).ToArray();
}

Zur Laufzeit erhalte ich eine Fehlermeldung, wenn ich versuche, die Zeichenfolgen zu verketten und die Konversion einer Ganzzahl mit der ID in eine Zeichenfolge zu versuchen.

Fehler sagt:

Linq to Entities erkennt die Methode string.Format nicht

Auch Plus-Verkettungszeichen '+' wird nicht unterstützt.

Ich habe dies durch die Einführung von AsEnumerable gelöst:

using (DBContext context = new DBContext())
{
    myCollection = context.Items.AsEnumerable().Where(i => i.Type == 1).OrderBy(k => k.Name).Select(w => new
    {
        Alias = w.Name + string.Format("{0}", w.Id),
        Name = w.Name                        
    }).ToArray();
}

aber ich würde gerne wissen, ob dies die beste lösung ist oder ob es eine andere möglichkeit gibt, dies zu tun. Ideen?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage