私は以下のコードを持っています:
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.Id を文字列に変換しようとするとエラーが発生します。
エラーは言う:
エンティティへの Linq はメソッド string.Format を認識しません
また、プラス連結記号「+」はサポートされていません。
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();
}
しかし、これが最善の解決策であるか、これを行うのに適した別の方法があるかどうかを知りたいです。アイデア?