return db.VideoCategories.Where(a => a.TypeId ==id).ToList();
我照着别人的代码写,下边可以正常运行,但是其中概率不清楚
db.VideoCategories.Where(a => a.TypeId ==id) 是一种什么类型?
为什么要ToList()?
/// <summary>
/// 返回一种类型(文章、文库、视频)(***我添加)
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
public static List<VideoCategories> GetOneType(int id)
{
using (var db = new WEBVODEntities())
{
return db.VideoCategories.Where(a => a.TypeId ==id).ToList();
}
}
------解决方案--------------------LINQ里的一种表达方式,就是过滤集合里的条件
最后ToList是将集合转成List格式
------解决方案--------------------你返回的是List<VideoCategories>
如果你返回IEnumerable<VideoCategories>就不需要ToList()
ToList()会立刻执行查询,将数据存入内存,和数据库脱离关系。
------解决方案--------------------db.VideoCategories应该是System.Data.Linq.Table<VideoCategories>类型的,
不符合你函数定义的返回类型,所以要转换成List类型,而且linq会立即执行查询
------解决方案--------------------
var x = db.VideoCategories;
将光标指向x可以看到。
如果是ef,是IQueryable<VideoCategories>,否则可也能是IEnumerable<VideoCategories>。
------解决方案--------------------
你看下就知道了。