テーブルから 3 つの列のみを返す LINQ2Entity クエリを記述し、結果を として設定しようとしていDataSource
ますComboBox
。
私が抱えている問題はこれです。まず、テーブルからすべてを選択するには、次のようなサービスを使用します。
IList<SoleColor> soles = SoleColorService.All().ToList();
このタイプのデータを待機する ComboBox の DataSource として設定する準備ができています。ただし、クエリ結果の列のうち 3 つだけを格納する匿名オブジェクトを選択したいので、クエリを次のように変更しました。
IList<SoleColor> soles = SoleColorService.All()
.GroupBy(t => t.Sole.Code)
.Select(g => new
{
SoleCode = g.Key,
SoleName = g.Select(t => t.Sole.Name),
SoleId = g.Select(t => t.SoleID)
});
.Select
これにより、「型 System.Linq.IQueryable を System.Collections.Generic.IList に暗黙的に変換できません」というテキストでエラーとしてマークされます。変更IList<SoleColor> soles =
しvar soles =
ても問題ありませんが、DataSource のような匿名型の割り当てに問題がありますが、これはクエリで修正できると思うので、そこで正しい型を取得します。また、ある時点で、First()
orのようなものFirstOrDafult()
を y クエリに追加する必要があります。これは、同じレコードが多数あり、SoleCode
unique ごとに 1 つだけ保持したいためですSoleCode
。