2012-07-10 151 views
0

查找表中出現的所有不同的人,負責創建連接的責任實體負責更多或更多人員和實體項目?實體到SQl,linq到sql查詢

如何轉換SQL查詢在那裏的技術? SQL查詢是

select distinct p.PersonID,p.FirstName,p.LastName 
from Responsible tr inner join People p on p.PersonID=tr.People_PersonID; 

我attemot是

 string query = @"SELECT value empl 
         FROM TicketBaseEntities.Responsible AS tr 
         INNER JOIN TicketBaseEntities.People AS empl 
         on empl.PersonID =tr.Responsibles.People_PersonID where tr.Responsibles !=null"; 
     return Context.CreateQuery<Employee>(query).Distinct(); 

錯誤信息是:

'People_PersonID' 不是Transient.collection [TicketBaseModel.Person(可爲空=真的」的成員,默認值=)]」。要提取集合元素的屬性,請使用子查詢遍歷集合。近簡單的標識符,第5行,列63

+0

?你能展示你的進展嗎? – 2012-07-10 12:11:49

+0

我試過的是sql查詢....我是初學者在實體或linq – 2012-07-10 12:17:40

+0

爲什麼你使用實體sql而不是linq? – 2012-07-11 14:53:46

回答

0
(from tr in Responsible 
join from p in People on tr.People_PersonID equals p.PersonID 
select p.PersonID,p.FirstName,p.LastName).Distinct() 

可以實現的IComparer接口,你自己已經嘗試過用鮮明的()函數的類人

+0

在此模型上實現IEnumeble接口 – 2012-07-10 12:20:40

+0

對不起,它是IEqualityComparer ,你可以在http://msdn.microsoft.com/en-us/library/bb338049.aspx找到更多的幫助。 – Cris 2012-07-10 12:38:28