Linq do Entities nie rozpoznaje string.Format lub konkatenacji „+”

Mam poniższy kod:

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();
}

W środowisku wykonawczym pojawia się błąd podczas próby łączenia łańcuchów i próby konwertowania liczby całkowitej w.Id na łańcuch.

Błąd mówi:

Linq do jednostek nie rozpoznaje metody string.Format

również znak konkatenacji „+” nie jest obsługiwany.

Rozwiązałem to, wprowadzając AsEnumerable:

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();
}

ale chciałbym wiedzieć, czy jest to najlepsze rozwiązanie, czy też jest inny sposób, aby to zrobić. Pomysły?

questionAnswers(2)

yourAnswerToTheQuestion