//TODO: edit by wyt所有的私信 public MessageModel getAllMessage(int id) { MessageModel m = new MessageModel(); m.packs = new List<MessagePack>(); IEnumerable<Message> send = db.Messages.Where(c => c.MFrom == id).Where(d => d.MType == 3); IEnumerable<Message> receive = db.Messages.Where(c => c.MTo == id).Where(d => d.MType == 3); IEnumerable<Message> mp = send.Union(receive);//找到所有跟我id相关的信息, 3== 私信 var j = 0; int inboxId; for (var i = 0; i < mp.Count(); i++) { inboxId = mp.ToList()[i].MFrom == id ? (mp.ToList()[i].MTo) : (mp.ToList()[i].MFrom);//联系人id for (j = 0; j < m.packs.Count(); j++) { if (m.packs[j].id == inboxId) //已经有和该用户的通讯记录 { Message mail = mp.ToList()[i]; m.packs[j].messages.Add(mail); break; } } if (j == m.packs.Count())//没有和该用户的通讯记录 { Message newM = new Message(); newM = mp.ToList()[i]; MessagePack newpack = new MessagePack(); newpack.id = inboxId; newpack.me = db.Users.First(d => d.UID == id); newpack.friend = db.Users.Find(inboxId); newpack.messages = new List<Message>(); newpack.messages.Add(newM); m.packs.Add(newpack); } } for (var i = 0; i < m.packs.Count(); i++) { m.packs[i].messages = orderByQTime(m.packs[i].messages); } return m; }