2017-01-27 4 views
1

EFコアの場合、私は値のコレクションを持っています。私のdbのいくつかのテーブルのエンティティのIDがあり、これらのIDに合った複数のエンティティを受け取りたい。私はそれが非常に遅いのアプローチだと思うしかし1つのクエリにつき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); 
} 

それはのような何かをすることができます。 1つのクエリにつき必要なエンティティをすべて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(); 
を使用することができます
関連する問題