2012-08-23 4 views
0

J'essaie de trouver tous les utilisateurs qui ne sont pas dans une liste d'amis amis en utilisant linq à sql. En ce moment, je compare la liste d'amis à tous les utilisateurs du système. Theres doit être une meilleure façon de le faire en utilisant linq à sql. Merci pour toute aidelinq to sql où non

// Comparing this to list to see who does not exist. 
// What I would like to do is just use one statement 
// to get the list of non friend users 
var friends = (from x in db.FriendsLists 
       where 
        (x.TheUser == GlobalVariables.User.ID) || 
        (x.TheFriend == GlobalVariables.User.ID) 
       select x).ToList(); 

var allUsersInSystem = (from x in db.Users select x).ToList(); 
+0

double possible de [ "NOT IN" clause LINQ to Entities] (http://stackoverflow.com/questions/432954/not-in-clause- in-linq-to-entities) – devuxer

+0

En fait, cette question posait des questions sur LINQ to Entities, pas LINQ to SQL. Il est possible que cela fonctionne également dans LINQ to SQL ... – devuxer

Répondre

2
var friends = (from x in db.FriendsLists 
            where 
             (x.TheUser == GlobalVariables.User.ID) || 
             (x.TheFriend == GlobalVariables.User.ID) 
            select x.UserID).ToList(); 

    var notInFriendList = from nf in db.Users 
       where !friends.Contains(nf.UserID) 
       select nf;