return db.VideoCategories.Where(a => a.TypeId ==id).ToList();

wrost 2013-01-21 06:03:32
我照着别人的代码写,下边可以正常运行,但是其中概率不清楚

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();
}
}




...全文
619 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
baidu_15366657 2014-10-17
  • 打赏
  • 举报
回复
引用 12 楼 qq_22043417 的回复:
db.VideoCategories.Where(a => a.TypeId ==id).ToList() 求解释一下这句话是啥意思,我是个新手,刚刚学C#,其中这个a是干嘛用的
我也刚学,可能是查询数据库的一种条件吧,会让数据库不止返回第一条数据
qq_22043417 2014-10-16
  • 打赏
  • 举报
回复
db.VideoCategories.Where(a => a.TypeId ==id).ToList() 求解释一下这句话是啥意思,我是个新手,刚刚学C#,其中这个a是干嘛用的
threenewbee 2013-01-21
  • 打赏
  • 举报
回复
你可以说它是IQueryable<TEntity>或者IEnumerable<TEntity>。 但是显然不是List<TEntity>
wrost 2013-01-21
  • 打赏
  • 举报
回复
引用 9 楼 caozhy 的回复:
引用 8 楼 wrost 的回复:自己顶下!!! 你看下就知道了。
谢谢

我查看了一下定义,有一点点概念

 // 摘要:
    //     表示用于执行创建、读取、更新和删除操作的类型化实体集。
    //
    // 类型参数:
    //   TEntity:
    //     实体类型。
    public class ObjectSet<TEntity> : ObjectQuery<TEntity>, IObjectSet<TEntity>, IQueryable<TEntity>, IEnumerable<TEntity>, IQueryable, IEnumerable where TEntity : class
threenewbee 2013-01-21
  • 打赏
  • 举报
回复
引用 8 楼 wrost 的回复:
自己顶下!!!
你看下就知道了。
wrost 2013-01-21
  • 打赏
  • 举报
回复
自己顶下!!!
wrost 2013-01-21
  • 打赏
  • 举报
回复
引用 6 楼 caozhy 的回复:
引用 4 楼 wrost 的回复:引用 2 楼 caozhy 的回复:你返回的是List<VideoCategories> 如果你返回IEnumerable<VideoCategories>就不需要ToList() ToList()会立刻执行查询,将数据存入内存,和数据库脱离关系。 db.VideoCategories属于List<>类型吗? 是不是whe……
webvodEF.edmx 这样定义出来的,应该是ef吧! WebVOD.dbml 如果通过这种方式出来的,就是IEnumerable<VideoCategories>吗?
threenewbee 2013-01-21
  • 打赏
  • 举报
回复
引用 4 楼 wrost 的回复:
引用 2 楼 caozhy 的回复:你返回的是List<VideoCategories> 如果你返回IEnumerable<VideoCategories>就不需要ToList() ToList()会立刻执行查询,将数据存入内存,和数据库脱离关系。 db.VideoCategories属于List<>类型吗? 是不是where以后,就变成IEnumerab……
var x = db.VideoCategories; 将光标指向x可以看到。 如果是ef,是IQueryable<VideoCategories>,否则可也能是IEnumerable<VideoCategories>。
gxingmin 2013-01-21
  • 打赏
  • 举报
回复
db.VideoCategories应该是System.Data.Linq.Table<VideoCategories>类型的, 不符合你函数定义的返回类型,所以要转换成List类型,而且linq会立即执行查询
wrost 2013-01-21
  • 打赏
  • 举报
回复
引用 2 楼 caozhy 的回复:
你返回的是List<VideoCategories> 如果你返回IEnumerable<VideoCategories>就不需要ToList() ToList()会立刻执行查询,将数据存入内存,和数据库脱离关系。
db.VideoCategories属于List<>类型吗? 是不是where以后,就变成IEnumerable<>类型了?
wrost 2013-01-21
  • 打赏
  • 举报
回复
引用 1 楼 gxingmin 的回复:
LINQ里的一种表达方式,就是过滤集合里的条件 最后ToList是将集合转成List格式
db.VideoCategories.Where(a => a.TypeId ==id) 里边的lambda表达式我知道,db.VideoCategories属于List<>类型吗? where以后又属于什么类型?
threenewbee 2013-01-21
  • 打赏
  • 举报
回复
你返回的是List<VideoCategories> 如果你返回IEnumerable<VideoCategories>就不需要ToList() ToList()会立刻执行查询,将数据存入内存,和数据库脱离关系。
gxingmin 2013-01-21
  • 打赏
  • 举报
回复
LINQ里的一种表达方式,就是过滤集合里的条件 最后ToList是将集合转成List格式

110,499

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧