2012-12-16 62 views
4

選擇最後童車我有這樣的一個表:在自加入表EF

Id    int  Not Null PK Unique 
RequestNO  int  Not Null 
RefrenceId  int  Null     //Self Join to Id 

如果我在這個表中的這些記錄:

Id RequestNO RefrenceId  
1  H100   NULL 
2  H101   NULL 
3  H101   2 
4  H101   3 
5  H100   1 
6  H105   NULL 

依靠這些記錄我想返回一個ID在{4,5,6}中的列表。我想選擇最後一個孩子(如果父母沒有孩子,本身就是孩子)。有沒有人幫助我呢?

我使用EF 4(數據庫優先),和表名是要求

UPDATE1:我試試這個,但是失敗了。

var list = DataContext.Requests.GroupBy(rec => new { rec.ConfirmNo }).Select(rec => rec.FirstOrDefault()); 

如果您需要更多的細節評論我。 感謝 阿里Foroughi

回答

1

你可以試試這個:

var list = DataContext.Requests.Where(op => !DataContext.Requests.Any(ip => ip.RefrenceId == ip.Id)); 
+0

據我所知有沒有像存在問題EF4。也許我會使用Any。我對嗎 ?! –

+0

你幫我了,謝謝老兄 –

+0

唉......在EF4中沒有叫做'Exists'的擴展方法。我嘗試用LINQ to Objects並粘貼代碼。我很高興它幫助你,並感謝編輯。 – NaveenBhat