//查询所有的可以访问的相册
            var fal = fa.facelook_album
                .Where(a => a.USER_ID == UID || a.ALBUM_LIMIT == 1)
              //.Select(a => a);
                .Select(a => new { a, Cout = fa.facelook_photo.Where(p => p.ALBUM_ID == a.ALBUM_ID).Count() });
            //在集合后面添加一个集合
           
            //查询所有好友中授权的相册
            for (int i = 0; i < friendid.Length; i++)
            {
                var friid = friendid[i];
                //根据好友授权查询
                var fu = fa.facelook_album
                    .Where(al => al.USER_ID == friid && al.ALBUM_LIMIT == 2)
                    .Select(al => new { al, Cout = fa.facelook_photo.Where(p => p.ALBUM_ID == al.ALBUM_ID).Count() });
                    //.Select(al => al);
               fal= fal.Concat(fu);
            }
            
            return fal;如果我要Select(al => new { al, Cout = fa.facelook_photo.Where(p => p.ALBUM_ID == al.ALBUM_ID).Count() })这样查询的结果让两个查询结果连接成一张表要怎么做 fal= fal.Concat(fu);这样连接会报错

解决方案 »

  1.   


    这种方法可以用不过查询的结果要给他这样写
     .Select(a => new
                        {
                            a.ALBUM_ID
                            ,
                            a.ALBUM_LIMIT
                            ,
                            a.ALBUM_NAME
                            ,
                            a.ALBUM_FILE_NAME
                            ,
                            a.ALBUM_DESC
                            ,
                            a.USER_ID
                            ,Cout = fa.facelook_photo.Where(p => p.ALBUM_ID == a.ALBUM_ID).Count()
                        });
      

  2.   

    看来你没见过SelectMany。那是不需要写for循环的。
      

  3.   

    我知道SelctMany这个方法可使好像我这里用不上 public IQueryable<facelook_album> AlbumAsFriend(string UID,string[] friendid)
            {
                //查询所有的可以访问的相册
                var fal = fa.facelook_album
                    .Where(a => a.USER_ID == UID || a.ALBUM_LIMIT == 1)
                  .Select(a => a);
                    //.Select(a => new 
                    //{ a.ALBUM_ID
                    //    ,a.ALBUM_LIMIT
                    //    ,a.ALBUM_NAME
                    //    ,a.ALBUM_FILE_NAME
                    //    ,a.ALBUM_DESC
                    //    ,a.USER_ID
                    //    , Cout = fa.facelook_photo.Where(p => p.ALBUM_ID == a.ALBUM_ID).Count()
                    //});
                //在集合后面添加一个集合
                
                
                //查询所有好友中授权的相册
                for (int i = 0; i < friendid.Length; i++)
                {
                    var friid = friendid[i];
                    //根据好友授权查询
                    var fu = fa.facelook_album
                        .Where(al => al.USER_ID == friid && al.ALBUM_LIMIT == 2)
                        //.Select(a => new
                        //{
                        //    a.ALBUM_ID
                        //    ,
                        //    a.ALBUM_LIMIT
                        //    ,
                        //    a.ALBUM_NAME
                        //    ,
                        //    a.ALBUM_FILE_NAME
                        //    ,
                        //    a.ALBUM_DESC
                        //    ,
                        //    a.USER_ID
                        //    ,Cout = fa.facelook_photo.Where(p => p.ALBUM_ID == a.ALBUM_ID).Count()
                        //});
                        .Select(a => a);
                    //fal.ToList().AddRange(fu.ToList());
                    fal = fal.Concat(fu);
                }
                
                return fal;
            }这里是多表关系查询返回一个数组 facelookEntities fa = new facelookEntities();
            public string[] SelectFriend(string UID)
            {
                int i = 0;
                string[] friend = new string[10];
                var fu = fa.facelook_user.First(u => u.USER_ID.Equals(UID));
                foreach (var item in fu.facelook_user1)
                {
                    friend[i] = item.USER_ID;
                    i++;
                }
                foreach (var item in fu.facelook_user2)
                {
                    
                    friend[i] = item.USER_ID;
                    i++;
                }
                return friend;
            }