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?