gpt4 book ai didi

c# - Entity Framework ,获取选中项的周边项

转载 作者:行者123 更新时间:2023-11-30 12:40:28 26 4
gpt4 key购买 nike

我想从数据库中获取一个项目,以及它之前和之后的项目。

var data= repo .OrderBy(a => a.Date)
.Select((item, index) => new { item, index })
.Where(itemAndIndex=>itemAndIndex.item.Id == someId)

这是我到目前为止得到的结果。

澄清一下,

假设这是我的 table

Id     Name        Date
1 SomeText1 01.01.2017
2 SomeText2 03.01.2017
3 SomeText3 02.01.2017
4 SomeText4 04.01.2017
5 SomeText5 05.01.2017

我想对 Id==3 进行选择查询,然后按 Date 字段对结果进行排序,并获得项目列表

Id     Name        Date
1 SomeText1 01.01.2017
3 SomeText3 02.01.2017
2 SomeText2 03.01.2017

像这样。

谢谢。

最佳答案

这与Harald Coppoolse's answer 中的思路相同(我认为这是满足您的要求的唯一合理方法),但使用最好的 (IMO) LINQ to Entities SQL 查询转换(假设 repoIQueryable<T> 代表您的表):

var data = repo
.Where(elem => elem.Id == someId)
.SelectMany(elem =>
repo.Where(e => e.Date < elem.Date).OrderByDescending(e => e.Date).Take(1)
.Concat(new[] { elem })
.Concat(repo.Where(e => e.Date > elem.Date).OrderBy(e => e.Date).Take(1)))
.ToList();

关于c# - Entity Framework ,获取选中项的周边项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41565966/

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