2016-12-03 23 views
0
AlinaDatabaseDataContext db = new AlinaDatabaseDataContext(); 


public List<FaciliteitenLokaalFixed> 
         GetFaciliteitenVoorArchetype(ArchetypesLokaal archetype) 
{ 
    var faciliteiten = new List<FaciliteitenLokaalFixed>(); 

    foreach(var faciliteit in db.FaciliteitenFixedPerArchetypes 
        .Where(f => f.Naam_archetype.Equals(archetype.Naam))) 
    { 
     faciliteiten.Add(db.FaciliteitenLokaalFixeds 
        .Where(f => f.Naam.Equals(faciliteit.Naam_faciliteit)).First()); 
    } 

    return faciliteiten; 
} 

我有一個表FaciliteitenFixed,表ArchetypesLokaal和表FaciliteitenFixedPerArchetype。函數獲取Archetype作爲參數,在表FaciliteitenFixedPerArchetype中查找FaciliteitenFixed的所有名稱,然後獲取所有FaciliteitenFixed對象並將它們返回到列表中。linq更有效的方法從另一個表格中獲取表格中的數據?

我在這裏使用了一個foreach,並且這個工作。但是我覺得在與Linq合作時可能會有更簡單的方法。

+0

您正在使用實體框架或LINQ到SQL? – Sefe

回答

1

您可以在LINQ查詢中使用子查詢:

public List<FaciliteitenLokaalFixed> 
         GetFaciliteitenVoorArchetype(ArchetypesLokaal archetype) 
{ 
    var faciliteitenQry = 
     from faciliteit in db.FaciliteitenFixedPerArchetypes 
     where faciliteit.Naam_archetype == archetype.Naam 
     let faciliteitenLokaals = 
      from f in db.FaciliteitenLokaalFixeds 
      where f.Naam == faciliteit.Naam_faciliteit 
      select f 
     select faciliteitenLokaals.First(); 
    return faciliteitenQry.ToList(); 
} 
相關問題