2010-04-28 6 views
2

J'ai une liste de valeurs ID:.Comment obtenir la liste des résultats de la liste des valeurs d'identité avec LINQ to SQL?

List<int> MyIDs { get; set; } 

J'aimerais passer cette liste à une interface à mon dépôt et ont le retourner une liste qui correspondent aux valeurs d'identité je passe

List<MyType> myTypes = new List<MyType>(); 

IMyRepository myRepos = new SqlMyRepository(); 

myTypes = myRepos.GetMyTypes(this.MyIDs); 

Actuellement, GetMyTypes() se comporte de façon similaire à ceci:

public MyType GetMyTypes(int id) 
{ 
    return (from myType in db.MyTypes 
      where myType.Id == id 
      select new MyType 
      { 
       MyValue = myType.MyValue 
      }).FirstOrDefault(); 
} 

où j'itérer MyIDs et passe chaque identifiant et ajouter chaque résultat à une liste.

Comment dois-je changer le LINQ pour que je puisse passer dans la liste complète des MyIDs et obtenir une liste de MyTypes out? GetMyTypes() aurait une signature semblable à

public List<MyType> GetMyTypes(List<int> myIds) 
+0

en double de http://stackoverflow.com/q/1075540/2449863 – DCShannon

+0

cette question est âgée de 4,5 ans .. . Vous ennuyez-vous? – DaveDev

+0

Oui, je suis, mais cela n'a rien à voir avec postant un commentaire pour aider les autres qui finissent aussi ici pour chercher de l'aide à ce problème. – DCShannon

Répondre

1
public List<MyType> GetMyTypes(List<int> ids) 
{ 
return (from myType in db.MyTypes 
     where ids.Contains(myType.Id) 
     select new MyType 
     { 
      MyValue = myType.MyValue 
     }).ToList(); 
} 
1

Untested

public List<MyType> GetMyTypes(List<int> myIds) { 
    var x = from myType in db.MyTypes 
      where myIds.contains(myType.Id) 
      select new MyType { 
      MyValue = mytype.Myvalue 
      }; 
return x.ToList(); 
} 
Questions connexes