2014-10-03 52 views
0

我在寫一些C#,它有一些實體。我的實體是:在C#中執行LINQ中的JOIN#

Address  Store 
-------  ----- 
ID    ID 
StreetAddress AddressID 
City   Name 
State 

我需要做一個LINQ查詢,爲我提供某個城市的所有商店。目前,我有:

var addresses = await Address.GetFromDatabase(); 
var results = address in addresses 
       where (address.City == 'Seattle') 
       select new 
       { 
       StoreID = store.ID 
       StoreAddress = address.StreetAddress 
       } 

這段代碼顯然不起作用。到商店的連接不存在。但是,因爲Store也必須打到數據庫,所以我不知道該怎麼辦。我很感激你能給予的幫助。

+0

這只是LINQ到實體? – dbarnes 2014-10-03 18:25:11

+1

無法使用導航屬性? 'Var res = db.Stores.Where(s => s.Address.City ==「Seatle」)' – Tuco 2014-10-03 18:26:17

+0

除了所有你應該迭代商店而不是地址(一些地址可能不匹配任何商店.Id) – serdar 2014-10-03 18:33:12

回答

4

你可以加入在LINQ,它是非常簡單的:

var results = from address in addresses 
       join store in stores 
       on address.ID equals store.AddressID 
       where (address.City == 'Seattle') 
       select store; 
+0

我想要小心,如果這是實體的linq,你可能想ToList是爲了避免你可以使用IEnumerable運行的多重查詢 – dbarnes 2014-10-03 18:26:10