我有一个表“朋友”,其中包含已登录用户的ID和他/她朋友的ID。
我使用此SQL查询获得的结果
SELECT u.ID, u.Nickname
FROM UserSet as u, FriendsSet as f
WHERE u.ID=f.FriendID
ORDER BY u.Nickname
时
| ID | Nickname |
-----------------
| 16 | rugardini|
| 17 | Teste |
所以我做了以下查询,不包括我自己的ID(16)
SELECT u.ID, u.Nickname
FROM UserSet as u, FriendsSet as f
WHERE u.ID=f.FriendID and u.ID != 16
ORDER BY u.Nickname
我有两个问题:
1)这是进行此选择的最佳方式吗? 2)如何将此SQL查询转换为LINQ?
答案 0 :(得分:3)
约2):你的第二个查询的linq应如下所示:
from u in db.UserSet, f in db.FieldsSet
where u.ID=f.FriendID && u.ID != 16
orderby u.Nickname
select u.ID, u.Nickname
答案 1 :(得分:0)
我可以像这样执行我的查询:
var friends = (from u in db.UserSets
join f in db.FriendsSets
on u.ID equals f.FriendID
where u.ID != userID
orderby u.Nickname
select new Friends { ID = u.ID, Nickname = u.Nickname }).ToList();
我的控制器中有一个类:
public class Friends
{
public int ID;
public string Nickname;
}
我认为这是一个循环:
<ul>
@foreach (dynamic item in ViewBag.Friends)
{
<li>@item.Nickname @Html.ActionLink("Amigo", "Index", new { id = item.ID })</li>
}
</ul>
感谢所有回答我问题的人=)