Fråga : Vad är det snabbast långt som gör där queryen i linq2sql

Jag har en databas att bordlägga att innehålla många hundra av tusentals ror, och I-förmiddagförsök att få de ror vars ID-match med de av en annan underdel av flera tusentals ID's.

I har en IQueryable, som går tillbaka ror, och därefter mig förmiddagen som gör en vald linq som, följer: för class=" codeSnippet " för

1 för >

stränga [] unitIDs = {AAAAAAA ", ”AAAAAAB”};

var-unitEvents = systemRepository.GetUnitEvents ();

var matchar = från a i unitEvents
			  från b i unitIDs
			  var a.UnitID-== b
			  välj nytt {a, b};

int-räkning = matcher. Räkning (); <-/pre>


(ovannämnda exemplet endast matcher de 2 unitID'sna men denna kunde vara många tusentals).

Although de ovannämnda arbetena, det kan ta flera understöder för att det ska avsluta matcherna. Meddelande för räkning (). Om jag gör ett liknande SQL-meddelande direkt via SQL, den går tillbaka i mindre än en understödja. e.g.

select * från unit_event var unitid i (”AAAAAAA”, ”AAAAAAB”) förmiddagen för

I inte erfors med Linq/Sql och, önskade att veta, om I-förmiddagen using den bäst method.
Perhaps mig bör skriver en uppehälle för lagrat tillvägagångssätt all den i databasen?

Many thanks
" klar "

Svar : Vad är det snabbast långt som gör där queryen i linq2sql

Hi Petroclus;

För att göra a I sats i den EF första frigöraren du ska behov att nedladda LinqKiten som är fri att använda, som ska byggande en predikat, så att den kan användas i queryen.

Nedladda LinqKit härifrån som är längst ner av sida==> http://www.albahari.com/nutshell/linqkit.aspx
Dra ned blixtlåset på spara och öppna lösningen i visuellt hjälpmedelstudio och uppsättning lösningen till frigöraren.
Sammanställa lösningen. Om inga nära fel lösningen.
Nu i din ström projektera tillfogar en hänvisa till till LinqKit.dllen som ska är i det slänga i soptunnan-/frigörararkivet av LinqKit projekterar.
Tillfoga det användande meddelandet till ditt projekterar ==> using LinqKit;
Det nedanfört fungerar, och queryen bör fungera inte.

Anknyta är efter info på LinqKet.
Dynamiskt komponera uttryckspredikat
http://www.albahari.com/nutshell/predicatebuilder.aspx

Fernando
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
offentliga IEnumerable GetUnitEventsWhereUnitIDIn (stränga [] unitIDs),
{
    var-predikat = PredicateBuilder.False ();
    foreach (stränga unitID i unitIDs),
    {
        stränga ID = unitID;
        predikat = predikat. Eller (I-=> I.UnitID.Contains (ID));
    }

    återgång db.UnitEvents.AsExpandable (). Var (predikat);
}
Andra lösningar  
 
programming4us programming4us