4

クエリの結果をListオブジェクトに返そうとしていますが、通常使用している次のコードは機能しません。Linqはまだ比較的新しいですが、誰かが正しい構文/何が起こっているのかを説明できますか?これは、のデータ型productTrainingvar...に変更すると機能します。

List<AgentProductTraining> productTraining = new List<AgentProductTraining>();  

productTraining = from records in db.CourseToProduct
                  where records.CourseCode == course.CourseCode
                  select records;
4

1 に答える 1

13

Select()ではなく、Where()を返します。あなたはそれを-に変換する必要があります-それは実際にクエリを実行します(単にそれを準備するのではなく)。IQueryable<T>List<T>List<T>

ToList()クエリの最後に呼び出す必要があります。例えば:

// There's no need to declare the variable separately...
List<AgentProductTraining> productTraining = (from records in db.CourseToProduct
                                              where records.CourseCode == course.CourseCode
                                              select records).ToList();

個人的には、クエリ式は使用しませんが、実行しているのが1つのWhere句だけの場合は次のようになります。

// Changed to var just for convenience - the type is still List<AgentProductTraining>
var productTraining = db.CourseToProduct
                        .Where(records => records.CourseCode == course.CourseCode)
                        .ToList();
于 2013-01-31T22:29:09.640 に答える