首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

上边的查询该如何写

2013-02-19 
下边的查询该怎么写 qry qry.Where(a a.CategoryID typeId) 这一句想改成, qry qry.Where(a

下边的查询该怎么写
 qry = qry.Where(a => a.CategoryID == typeId); 这一句想改成,
 qry = qry.Where(a => a.CategoryID in (另外一个表查出的typeid=1 的所有id,用sql
表达就是 select id from catatype where typeid=1));


            using (var db = new WEBVODEntities())
            {
                var qry = db.Articles.AsQueryable();                        //ObjectSet 转换成 IQueryable
                if (typeId > 0)
                    qry = qry.Where(a => a.CategoryID == typeId);           //文章类型(=0,就不进行类型筛选)
                if (!showAll)
                    qry = qry.Where(a => a.Display && a.Approved);          //!!!!(这个逻辑可能需要修改)showAll=false,只显示Display、Approved都等于True情况
                if (!string.IsNullOrEmpty(title))
                    qry = qry.Where(a => a.Title.Contains(title));          //文章标题
                if (!string.IsNullOrEmpty(author))
                    qry = qry.Where(a => a.Author.Contains(author));        //文章作者
                PagedList<Article> pl = qry.OrderByDescending(a => a.PubDate).ToPagedList(pageIndex, pageSize);

                foreach (var art in pl)
                {
                    string LoginName = art.LoginName;                                       //获取创建者ID
                    string RealName = db.RegisteredUsers.SingleOrDefault(a => a.LoginName == LoginName).RealName;  //获取用户对象
                    art.LoginName = art.LoginName + "--" + RealName;                                           //获取创建者真名



                    int CategaryID = art.CategoryID;
                    string CategaryCN = db.VideoCategories.SingleOrDefault(a => a.ID == CategaryID).Name;
                    art.CategoryCN = CategaryCN;
                }

                return pl;
            }


[解决办法]
qry = qry.Where(a => othertable.Select(x => x.id).Contains(a.ID)); 
[解决办法]
var ary=XXX.Select(t=>t.id).ToList();
qry=qry.Where(t=>ary.Contains(t.id));

热点排行