2017-01-27 24 views
1

對於EF Core,我有一組值,例如,有我的數據庫的某些表的實體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); 
} 

不過,我認爲這是非常緩慢的辦法。我可以將每個查詢所需的所有實體都獲取到數據庫嗎?

回答

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();