Asp.net 希望仅收集一个具有当前结果的用户…在linq中
我想从消息表中收集不同的用户。我写了一个查询,但得到了用户的所有消息。下面是代码Asp.net 希望仅收集一个具有当前结果的用户…在linq中,asp.net,linq,Asp.net,Linq,我想从消息表中收集不同的用户。我写了一个查询,但得到了用户的所有消息。下面是代码 public IList<Entities.ent_Message.messageDetails> messages(decimal userNumber) { owncibai_ExamEntities db = new owncibai_ExamEntities(); var messages = db.Messages.Where(wh =>
public IList<Entities.ent_Message.messageDetails> messages(decimal userNumber)
{
owncibai_ExamEntities db = new owncibai_ExamEntities();
var messages = db.Messages.Where(wh => wh.messageTo == userNumber).OrderByDescending(or => or.mDate).Select(a => new Entities.ent_Message.messageDetails
{
message = a.Message1.Substring(0, 50) + "...",
messageID = a.messID,
Name = a.User.First_Name + " " + a.User.Last_Name,
photo = a.User.imagePath,
userNumber = (long)a.userNumber,
myDate = a.mDate,
isRead = (bool)(a.isRead == null ? false : a.isRead == false ? false : true)
}).ToList();
return messages;
}
公共IList消息(十进制用户号)
{
owncibai_Examenties db=新owncibai_Examenties();
var messages=db.messages.Where(wh=>wh.messageTo==userNumber)。OrderByDescending(or=>or.mDate)。选择(a=>newentities.ent\u Message.messageDetails
{
message=a.Message1.子字符串(0,50)+“…”,
messageID=a.mesid,
Name=a.User.First\u Name+“”+a.User.Last\u Name,
photo=a.User.imagePath,
userNumber=(长)a.userNumber,
myDate=a.mDate,
isRead=(bool)(a.isRead==null?false:a.isRead==false?false:true)
}).ToList();
返回消息;
}
但结果如下。在左窗格中出现两个类似的行。我试过和团队合作,但也没有成功。
结果如下
用户1
信息abcd
用户1
消息xyz
...
而我想要的是结果
用户1---Message1
最新Mesage xyz----信息2
提前谢谢我不确定我是否理解你的问题,但我想你是想说你想要一行包含最新消息。在这种情况下,根本不需要返回列表,并且需要利用FirstOrDefault()函数确保只获取第一条记录(如果不存在,则为null)
这能满足您的需要吗?您能稍微澄清一下您的问题吗?你只是在等一排回来吗?我很难理解你得到的结果和你想要的结果之间的差异。你为什么不查询
用户。消息?你好,谢谢你的回复。。。。实际上我想要类似的facebook留言系统。。。在其中唯一的用户左侧。。。而当前用户和右侧唯一用户之间的所有对话。但在我的例子左侧,所有相同的用户都重复了大量的消息。。。
public Entities.ent_Message.messageDetails messages(decimal userNumber)
{
owncibai_ExamEntities db = new owncibai_ExamEntities();
var message = db.Messages.Where(wh => wh.messageTo == userNumber).OrderByDescending(or => or.mDate).Select(a => new Entities.ent_Message.messageDetails
{
message = a.Message1.Substring(0, 50) + "...",
messageID = a.messID,
Name = a.User.First_Name + " " + a.User.Last_Name,
photo = a.User.imagePath,
userNumber = (long)a.userNumber,
myDate = a.mDate,
isRead = (bool)(a.isRead == null ? false : a.isRead == false ? false : true)
}).FirstOrDefault();
return message;
}