在EF中的自联接表中选择最后一个孩子

时间:2012-12-16 08:17:34

标签: asp.net entity-framework self-join

我有一张这样的表:

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());

如果您需要更多详细信息,请评论我。 谢谢 Ali Foroughi

1 个答案:

答案 0 :(得分:1)

你可以试试这个:

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