gpt4 book ai didi

entity-framework - Entity Framework - 选择分组依据,选择最大日期

转载 作者:行者123 更新时间:2023-12-03 07:15:16 26 4
gpt4 key购买 nike

我有一个笔记摘要

public int Id { get; set; } 
public string Title { get; set; }
public DateTime Created { get; set; }
public int ParentNoteId { get; set; }

数据看起来像这样

1 Title1 03/31/1987 1
2 Title1 03/31/1988 1
3 Title3 01/01/2000 3
4 Title4 01/01/2001 4
5 Title4 01/01/2005 4

我想做:

SELECT t1.*
FROM Notes AS t1 LEFT JOIN Notes AS t2
ON (t1.ParentNoteId = t2.ParentNoteId AND t1.Created < t2.Created)
WHERE t2.Created IS NULL;

现在我有:

 public IQueryable<NoteBrief> GetNotes()
{

return _ctx.Notes.Select(r => new NoteBrief
{
Id = r.Id,
Title = r.Title,
Created = r.Created,
ParentNoteId = r.ParentNoteId,
});

}

我对此很满意,但实际上不需要 ParentNoteId 的旧版本,只需要最后创建的版本,以便我可以链接到它。

我读过很多示例,其中一些使用 FirstOrDefault,一些使用 max。但每次我尝试实现一个示例时,它都不适合我。

最佳答案

Entity Framework creating IQuerable of the most recent

这最终对我有用:

        return from e in _ctx.Notes
group e by e.ParentNoteId into g
select g.OrderByDescending(e => e.Created).FirstOrDefault() into r
select new NoteBrief
{
Id = r.Id,
Title = r.Title,
Created = r.Created,
ParentNoteId = r.ParentNoteId,
};

还用我想要的正确查询编辑了我的原始帖子。

谢谢。

关于entity-framework - Entity Framework - 选择分组依据,选择最大日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19073117/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com