0

我在 SQL 方面不是很有经验。我正在使用 SQL Server 2008 和 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

您可以看到List 被定义为

[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 回答