2009-04-25 15 views
5

LINQ'yi Queryable ve Queryable olmayan veriler genelinde nasıl kullanırım?LINQ Öğeleri bulmak için katılın Listeye girmiyor

Aşağıdaki kodla, seçili olmayan kullanıcıların, yani allUser'lerin seçilmemiş olanlarının listesiyle sonlandırmak istiyorum.

public IQueryable<CompanyUser> FindAllUsersNotAssignedTothisCompany(int companyID) 
{ 
    var allUsers = Membership.GetAllUsers(); 
    var selected = db.CompanyUsers.Where(c => c.CompanyID == companyID); 
    ...? 
} 
ben etkili bir DropDownList Kullanıcı kimlikleri ve İsimler uygun kullanım için bir listesini istiyorum

hem allUsers ve selected aynı tipte olduğu varsayılırsa (ASP.NET MVC)

cevap

18

, Sen kullanarak yapabilirsiniz Ancak Except

public IQueryable<CompanyUser> FindAllUsersNotAssignedTothisCompany(int companyID) 
{ 
    var allUsers = Membership.GetAllUsers(); 
    var selected = db.CompanyUsers.Where(c => c.CompanyID == companyID); 
    return allUsers.Except(selected); 
} 

db.CompanyUsers zaten tüm kullanıcısı var ve ihtiyacınız olan tüm arayışı içinde şirket kimliği yok kullanıcılar almak istiyorsa iyon sadece:

return db.CompanyUsers.Where(c => c.CompanyID != companyID); 
0

tek satırda bu deneyin:

db.CompanyUsers.Where(c => !allUsers.Any(d=> d.CompanyID == a.companyID))).ToList(); 
İlgili konular