この問題は、LINQ-to-entity に関連しています。
私は同様の質問を投稿しましたが、答えがなくて混乱したので、例と助けを求める新しい叫びを提供しています.
ObservableCollection
私は2つのメンバーを持つクラス「Colors」を持ってIndex
おりName
、次のように入力されています:
0 - 赤
1 - 青
2 - 緑
お気に入りの色の整数のリストを含むデータベース テーブルがあります。データベースに格納されているインデックス値に基づいて、お気に入りの色の整数値と一致する名前 (observablecollection によって返される) の両方を含むクエリを返したいと思います。
このステートメントは単独で正常に機能し、私の色の名前を返します:-
string ColorName = Colors.Names.Where(x => x.Index == 1).FirstOrDefault().Name;
ただし、LINQ-to-entity クエリ内に含まれている場合:-
var query = from c in context.FavoriteColor
select (new Item
{
Id = c.Id,
ColorName = Colors.Names.Where(x => x.Index == c.ColorIndex).FirstOrDefault().Name
});
このエラーが発生します:
タイプ「何とか」の定数値を作成できません。このコンテキストでは、プリミティブ型 (Int32、String、および Guid など) のみがサポートされます。
オブジェクトが LINQ ステートメント内で返されている可能性があることは理解していますが、最後に文字列メンバーである .Name 表記を指定することで、それを使用して「ColorName」に割り当てると思いました。