0

私はSQLの経験があまりありません。SQLServer2008とMVC3を使用しています。次のスクリプトを使用してリストを作成しようとして、データベースに簡単なビューがあります。

 List<vw_LearnerCourse> list = ctx.vw_LearnerCourses.Where(x => x.Course_ID == id).ToList().AsEnumerable();

次のエラーが発生します。

Cannot implicitly convert type 'System.Collections.Generic.IEnumerable<vw_LearnerCourse>' to 'System.Collections.Generic.List<vw_LearnerCourse>'. An explicit conversion exists (are you missing a cast?)

よろしくお願いします。前もって感謝します。

4

3 に答える 3

1

使用するだけです:

 List<vw_LearnerCourse> list 
          = ctx.vw_LearnerCourses.Where(x => x.Course_ID == id).ToList();
于 2013-01-24T03:05:03.590 に答える
1

.ToList()IEnumerableを呼び出します。

List<vw_LearnerCourse> list = ctx.vw_LearnerCourses.Where(x => x.Course_ID == id).ToList();

ドキュメントから:

ToList(IEnumerable)メソッドは、クエリの即時評価を強制し、クエリ結果を含むリストを返します。クエリ結果のキャッシュされたコピーを取得するために、このメソッドをクエリに追加できます。

于 2013-01-24T03:05:05.973 に答える
0

リストが次のように定義されていることがわかります

[SerializableAttribute]
public class List<T> : IList<T>, ICollection<T>, 
IList, ICollection, IReadOnlyList<T>, IReadOnlyCollection<T>, IEnumerable<T>, 
IEnumerable

デフォルトでは、リストは列挙可能です。したがって、ToList()でステートメントを終了すると正常に機能します。AsEnumerable()は必要ありません。

List<vw_LearnerCourse> list = ctx.vw_LearnerCourses.Where(x => x.Course_ID == id).ToList();
于 2013-01-24T03:09:05.020 に答える