2017-01-27 1 views
1

EF 코어의 경우 값의 모음이 있습니다. 내 데이터베이스의 일부 테이블의 엔티티 ID가 있으며이 ID에 적합한 여러 엔티티를 수신하려고합니다. 나는 그것이 매우 느리게 접근 방식이라고 생각하지만하나의 쿼리 당 DB에서 많은 엔티티를 수신합니다.

List<string> IDs { get; set; } 
... 
var listofEntities = new List<Foo>(); 
foreach(var id in IDs) 
{ 
var result = context.Foos.Where(f => f.ID == id).Single(); 
listofEntities.Add(result); 
} 

:

이 뭔가를 할 수 있습니다. 하나의 쿼리 당 필요한 모든 엔티티를 DB로 가져올 수 있습니까?

답변

0

그냥 Contains 사용

List<string> IDs { get; set; } 
... 
var listofEntities = context.Foos.Where(f => IDs.Contains(f.ID)); 
0

당신이

var query = from foo in context.Foos 
    join id in IDs on id equals foo.ID 
    select foo; 

return await query.ToListAsync(); 
가입 사용할 수 있습니다
관련 문제