Entity Framework Plus - FutureValue () in einer foreach-Schleife

entity-framework entity-framework-6 entity-framework-plus

Frage

Ich habe vor kurzem mit großem Erfolg begonnen, EF + in unserem Projekt einzusetzen, aber manchmal stoße ich auf ein Problem, bei dem ich eine Reihe von Entitäten habe, für die ich eine separate Abfrage ausführen muss.

Wenn ich also 20 Kunden habe, muss ich 20 Abfragen separat ausführen. Ich frage mich, ob es möglich ist, dies zu vermeiden, indem Sie EF + FutureValue () irgendwie in einer foreach-Schleife verwenden.

Siehe diesen Beispielcode:

foreach (var customer in customers)
                {
                    customer.SomeValue = ctx.SomeDatabaseTable.Where(myCondition).FutureValue();
                    // this would run 20 times ... any way how to run all of the 20 queries at once?
                }

Akzeptierte Antwort

Sie müssen zuerst alle QueryFuture-Abfragen generieren, um sie dann verwenden zu können.

Zwei Schleifen sollten also funktionieren.

var futureQueries = new List<BaseQueryFuture>();

// create all query futures
for(int i = 0; i < customers.Length; i++)
{
    futureQueries.Add(ctx.SomeDatabaseTable.Where(myCondition).FutureValue());
}

// assign result (the first solved will make the call to the DB)
for(int i = 0; i < customers.Length; i++)
{
     customer.SomeValue = ((QueryFutureValue<SomeValueType>)futureQueries[i]).Value;
}


Related

Lizenziert unter: CC-BY-SA with attribution
Nicht verbunden mit Stack Overflow
Lizenziert unter: CC-BY-SA with attribution
Nicht verbunden mit Stack Overflow