2009-08-07 7 views
0

Je me demandais comment je comparais à un tableau de ids dans EF1.0LINQ to Entities

Je sais que dans EF4.0 Beta 1 il y a une contient des méthodes de sorte qu'il ressemblerait à quelque chose comme ça

int[] associationIds = GetAssociationIds(); 
from c in Associations where c.AssociationId.Contains(associationIds) select c; 

Mais comment faites-vous l'équivalent dans EF1.0

Répondre

1

Il n'y a pas de façon intégrée de le faire dans EF1. L'outil le plus couramment utilisé pour cette tâche est PredicateBuilder. La solution (à l'aide de ce toolkit) consiste à créer une expression personnalisée qui teste AssociationId par rapport à chacun des identifiants de votre tableau d'entiers. L'expression résultante ressemble à quelque chose comme ceci:

int[] associationIds = GetAssociationIds(); 

// use PredicateBuilder to build this expression using the contents of 
// associationIds: 

Expression<Func<Association, bool>> testIds = 
    c => c.AssociationId == 1 || c.AssociationId == 2 || c.AssociationId == 5; 

Et pour l'utiliser:

var matchingAssociations = db.Associations.Where(testIds); 
0

La documentation PredicateBuilder énumère une façon de le faire sans linqkit donc je l'ai utilisé cette méthode, ce ne est pas assez, mais il fera le travail jusqu'à ce que EF4.0 arrive. Cheers

Questions connexes