当前位置:编程学习 > C#/ASP.NET >>

Linq 问题,

public List<Model.HumanModel> GetStar()
        {
            
            List<Model.HumanModel> temp = (from d in DataContext.hotSomething
                                           join b in DataContext.T_userbase
                                           on d.somethingid equals b.userid
                                           join c in DataContext.users_sports
                                           on b.userid equals c.userid into p
                                           from c in p.Take(1)
                                           where d.type == ApplicationSettings.userType && b.flag == false
                                           
            select new Model.HumanModel(b.userid, b.uB_Name, b.uB_Sex == true ? "男" : "女", b.uCom_Address, c.uS_Sports, b.uB_Birthday == null ? 0 : Convert.ToInt32(DateTime.Now.Year - Convert.ToDateTime(b.uB_Birthday).Year), b.photopath, b.uB_Sign, b.photoUploadtime.HasValue ? b.photoUploadtime.Value : DateTime.Now, b.PermitFriendSee, b.permitMySelfSee)).Distinct().ToList();

            return temp;

        }

这个方法是好的,但是如果出现重复的数据的时候,我在后面加了一个Distinct(),重复数据没了,但是DataList的页面的排序出现了问题...求高手帮忙解答  谢谢 --------------------编程问答-------------------- 有人没? --------------------编程问答-------------------- 写个 Distinct().OrderBy(...).ToList() --------------------编程问答-------------------- 在Distinct().OrderBy(d.time或者DataContext.表名.字段)里面是没办法点出来的 --------------------编程问答-------------------- Take(1)之后,还有重复数据???
是我理解错误吗?? --------------------编程问答-------------------- 你都只拿一条数据,还OrderBy什么?? --------------------编程问答-------------------- 你没看懂 我写的? --------------------编程问答--------------------       public List<Model.HumanModel> GetStar()
        {
            
            List<Model.HumanModel> temp = (from d in DataContext.hotSomething
                                           join b in DataContext.T_userbase
                                           on d.somethingid equals b.userid
                                           join c in DataContext.users_sports
                                           on b.userid equals c.userid into p
                                           from c in p.Take(1)
                                           where d.type == ApplicationSettings.userType && b.flag == false
                                           orderby d.time descending 
            select new Model.HumanModel(b.userid, b.uB_Name, b.uB_Sex == true ? "男" : "女", b.uCom_Address, c.uS_Sports, b.uB_Birthday == null ? 0 : Convert.ToInt32(DateTime.Now.Year - Convert.ToDateTime(b.uB_Birthday).Year), b.photopath, b.uB_Sign, b.photoUploadtime.HasValue ? b.photoUploadtime.Value : DateTime.Now, b.PermitFriendSee, b.permitMySelfSee)).Distinct().ToList();

            return temp;

        } --------------------编程问答-------------------- 的确没看懂,
也不知道你要做什么,
尤其是into p from c in p.Take(1)这句
但如果是我写,
肯定不这样写。

你如果告诉我需求,
我可以试着重新写个看看 --------------------编程问答-------------------- 要不我加你QQ吧... --------------------编程问答--------------------
QQ很少用,麻烦,老是有消息 --------------------编程问答-------------------- 呃....就是你上面看到的三个表  显示的效果  是一个人的列表 按照 他们加入的时间来排序,但是不能有重复项 --------------------编程问答-------------------- into p from c in p.Take(1)这句你想达到什么目的?
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,