Linq to entities ne reconnaît pas la chaîne.Format ou la concaténation '+'

J'ai code ci-dessous:

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

Lors de l'exécution j'obtiens une erreur lors de la tentative de concaténer les chaînes et en essayant con convertir entier w.Id de chaîne.

D'erreur dit:

Linq to entities ne reconnaît pas la méthode string.Format

également plus de concaténation signe " + " n'est pas pris en charge.

J'ai résolu ce problème en introduisant 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();
}

mais je voudrais savoir si c'est la meilleure solution ou il y a un autre moyen plus approprié pour ce faire. Des idées?

InformationsquelleAutor Rodri | 2013-10-02