Entity Framework Plus - foreach 루프의 FutureValue ()

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

문제

최근에 나는 프로젝트에서 EF + 를 사용하여 큰 성공을 거두었지만 때로는 별도의 쿼리를 실행해야하는 엔티티 세트가있는 문제가 발생합니다.

따라서 20 명의 고객이있는 경우 별도로 20 개의 쿼리를 실행해야합니다. foreach 루프에서 EF + FutureValue ()를 사용하는 것을 피하는 방법이 있는지 궁금합니다.

이 샘플 코드를 참조하십시오.

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?
                }

수락 된 답변

먼저 모든 "QueryFuture"쿼리를 생성해야 사용할 수 있습니다.

따라서 두 개의 루프가 작동해야합니다.

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

아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow
아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow