LINQ问题 - 如何制作!=值

时间:2011-09-13 06:09:47

标签: linq-to-sql

我有一个表“朋友”,其中包含已登录用户的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  |
“rugardini”是我现在的用户,看来是因为在友情关系中“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?

2 个答案:

答案 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>

感谢所有回答我问题的人=)