Linq 问题,

microsoftAnson 2010-04-30 08:36:21
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的页面的排序出现了问题...求高手帮忙解答 谢谢
...全文
96 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
丰云 2010-04-30
  • 打赏
  • 举报
回复
into p from c in p.Take(1)这句你想达到什么目的?
microsoftAnson 2010-04-30
  • 打赏
  • 举报
回复
呃....就是你上面看到的三个表 显示的效果 是一个人的列表 按照 他们加入的时间来排序,但是不能有重复项
丰云 2010-04-30
  • 打赏
  • 举报
回复

QQ很少用,麻烦,老是有消息
microsoftAnson 2010-04-30
  • 打赏
  • 举报
回复
要不我加你QQ吧...
丰云 2010-04-30
  • 打赏
  • 举报
回复
的确没看懂,
也不知道你要做什么,
尤其是into p from c in p.Take(1)这句
但如果是我写,
肯定不这样写。

你如果告诉我需求,
我可以试着重新写个看看
microsoftAnson 2010-04-30
  • 打赏
  • 举报
回复
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;

}
microsoftAnson 2010-04-30
  • 打赏
  • 举报
回复
你没看懂 我写的?
丰云 2010-04-30
  • 打赏
  • 举报
回复
你都只拿一条数据,还OrderBy什么??
丰云 2010-04-30
  • 打赏
  • 举报
回复
Take(1)之后,还有重复数据???
是我理解错误吗??
microsoftAnson 2010-04-30
  • 打赏
  • 举报
回复
在Distinct().OrderBy(d.time或者DataContext.表名.字段)里面是没办法点出来的
  • 打赏
  • 举报
回复
写个 Distinct().OrderBy(...).ToList()
microsoftAnson 2010-04-30
  • 打赏
  • 举报
回复
有人没?

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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