IEnumerable from a View c# MVC

本文关键字:MVC View from IEnumerable | 更新日期: 2023-09-27 17:55:27

我在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?)

将不胜感激。 提前谢谢。

IEnumerable from a View c# MVC

在 IEnumerable 上调用 .ToList()

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

从文档中:

ToList(IEnumerable) 方法强制立即 查询计算并返回包含查询的列表 结果。您可以将此方法追加到查询中,以便获得 查询结果的缓存副本。

只需使用:

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

您可以看到 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();