假設我有三個表:如何編寫基於EF的linq查詢?
Person(pid, ...)
PersonAddress(pid, aid,...)
Address(aid, ...)
然後我想得到這樣的sql人地址:
select a.* from address a join PersonAddress pa on a.addressID=pa.addressID
where pa.personID = myPersonID
使用實體框架創建實體模型,然後想寫一個LINQ相當於如上SQL。
我試圖在下列方式:
var addresses = this.GetAddress();
var personaddresses = this.GetPersonAddress();
var query = from ad in addresses
from pa in personaddresses
where ((ad.AddressID == pa.AddressID)&&(pa.PersonID==person.personID))
select ad;
但我得到的錯誤。或者我試着從:
var result = this.Context.Address;
var result = result.Join .... //how to write linq in this way?
如何寫linq?
感謝。會嘗試。 – KentZhou 2009-11-13 19:53:41
嘗試過之後,沒有錯誤。但是當爲結果檢查進行調試時,它會爲每個人創建一個記錄,在此之下,沒有地址。它應該只有一個記錄。結果 – KentZhou 2009-11-13 20:36:41
你應該得到一個地址列表,而不是從這個人的列表,這是不是你以後? – bobwah 2009-11-13 21:46:57