Question : Ce qui est la manière la plus rapide de faire où question dans linq2sql

J'ai une table de base de données contenir beaucoup de cent de milliers de rangées et je suis essai pour obtenir ces rangées dont l'allumette d'identification avec ceux d'un autre sous-ensemble de plusieurs milliers d'ID's.

I avoir un IQueryable qui renvoie les rangées et alors je fais un linq choisi comme suit : class= " lineNumbers " >
1 de >

unitIDs de corde [] = {AAAAAAA ", « AAAAAAB »} ;

unitEvents de variété = systemRepository.GetUnitEvents () ;

la variété s'assortit = d'a dans les unitEvents
			  de b dans les unitIDs
			  là où == b d'a.UnitID
			  choisir nouveau {a, b} ;

compte = allumettes d'international. Compte () ; class= >


de

Although les travaux ci-dessus, il peut prendre plusieurs secondes pour qu'il finisse les allumettes. Rapport de compte (). Si je fais une commande SQL Semblable directement par l'intermédiaire du SQL il retourne en moins d'une seconde. e.g.

select * est-ce queunit_event où l'unitid dans (« AAAAAAA », « AAAAAAB ») le

I AM non éprouvé avec Linq/SQL et a voulu savoir si j'emploie le meilleur method.

Perhaps que je devrais écris un procédé stocké pour le maintenir tout dans la base de données ?

Many thanks
class= de

Réponse : Ce qui est la manière la plus rapide de faire où question dans linq2sql

Salut Petroclus ;

Afin de faire a DANS la clause dans le premier dégagement E-F que vous devrez télécharger le LinqKit qui est libre pour employer qui établira un attribut de sorte qu'il puisse être employé dans la question.

Télécharger LinqKit d'ici au fond du ==> http://www.albahari.com/nutshell/linqkit.aspx de page
Défaire la fermeture éclair du dossier et ouvrir la solution dans le studio visuel et placer la solution au dégagement.
Compiler la solution. Si erreur ne ferme pas la solution.
Maintenant dans votre projet en cours ajouter une référence au LinqKit.dll qui sera dans l'annuaire de casier/dégagement du projet de LinqKit.
Ajouter le rapport de utilisation à votre ==> de projet using LinqKit ;
La fonction et la question ci-dessous devraient fonctionner pas.

Le lien suivant est information sur LinqKet.
Attributs dynamiquement de composition d'expression
http://www.albahari.com/nutshell/predicatebuilder.aspx

Fernando
1 :
2 :
3 :
4 :
5 :
6 :
7 :
8 :
9 :
10 :
11 :
IEnumerable public GetUnitEventsWhereUnitIDIn (unitIDs de corde [])
{
    attribut de variété = PredicateBuilder.False () ;
    foreach (unitID de corde dans les unitIDs)
    {
        corde identification = unitID ;
        attribut = attribut. Ou (=> I.UnitID.Contains (identification) d'I);
    }

    db.UnitEvents.AsExpandable de retour (). Là où (attribut) ;
}
Autres solutions  
  •  MS Excel 2007 et pdf - l'exportation vers le pdf prend de longues heures !
  •  Dans le Perl, comment j'ajoute une valeur à la liste, puis le contrôle pour voir si la valeur existent avant d'ajouter une nouvelle valeur
  •  Comment fais j'initialiser de la HP BL460c G6 de san et de la HP XP 240000
  •  Comment fais j'employer une clef de permis de volume sur un ordinateur de HP avec du CD de restauration
  •  Emplacement primaire de deux SCCM dans l'annuaire actif
  •  L'initiateur et la HP D2D de l'iSCSI R2 du serveur 2008 de Windows GERCENT l'issue
  •  Stocker le dossier dans le mysql using connector.net et le champ de goutte
  •  Carte vidéo d'USB - bit 32 sur le matériel travaillant au niveau du bit 64 ?
  •  asp.net que j'essaye de convertir une forme de HTML en forme d'aspx ou ? ce qui jamais. Aide du besoin sur la façon dont à à elle.
  •  Winzip 12 issues de secours du travail ?
  •  
    programming4us programming4us