2009-11-19 7 views
0
public ActionResult myItems() { 

     var dataContext = new RecordsDataContext(); 
     MembershipUser myObject = Membership.GetUser();   
     string CurrentUserName = myObject.UserName.ToString();  

     var user = from i in dataContext.myUsers 
        where i.userName ==CurrentUserName 
        select i.id; 

     var items=from j in dataContext.OtherUsers 
        where j.id_user==user /*error:operator '==' cannot be aplied to operands of type 'int' and 'System.Linq.Iquerable<int>'*/ 
        select j; 



      return View(items); 

    } 

S'il vous plaît aidez-moi avec cette erreurrequête LINQ de plusieurs tables

+0

Si ma réponse convient à votre question, accepter de supprimer votre question de la liste sans réponse. Merci. –

Répondre

0

En fait, l'utilisateur de la première requête est pas un seul résultat int. Vous devez vérifier si user.Count() n'est pas 0 et vous pouvez utiliser user.First() pour récupérer le résultat de la première ligne.

Mais je suggère d'utiliser join (quelque chose comme ça):

public ActionResult myItems() { 
    var dataContext = new RecordsDataContext(); 
    var query = from i in dataContext.myItems 
       join ou in dataContext.OtherUsers 
       on i.id_user equals ou.id_user //check real reference, since I don't know 
       join mu in dataContext.myUsers 
       on ou.id_user equals mu.id_user 
       where mu.username == Membership.GetUser().UserName.ToString() 
       select i; 
    return View(query); 
} 
+0

rejoindre semblable à cela est résolu mon problème, tnx – Ognjen

Questions connexes