日期:2014-05-17  浏览次数:20771 次

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>。
------解决方案--------------------
引用:
自己顶下!!!


你看下就知道了。