Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/29.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 希望仅收集一个具有当前结果的用户…在linq中_Asp.net_Linq - Fatal编程技术网

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;
}