读书人

return db.VideoCategories.Where(a =

发布时间: 2013-01-26 13:47:04 作者: rapoo

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会立即执行查询
[解决办法]
引用:
引用:你返回的是List<VideoCategories>
如果你返回IEnumerable<VideoCategories>就不需要ToList()

ToList()会立刻执行查询,将数据存入内存,和数据库脱离关系。

db.VideoCategories属于List<>类型吗? 是不是where以后,就变成IEnumerab……

var x = db.VideoCategories;
将光标指向x可以看到。
如果是ef,是IQueryable<VideoCategories>,否则可也能是IEnumerable<VideoCategories>。
[解决办法]
引用:
自己顶下!!!


你看下就知道了。

读书人网 >C#

热点推荐