【问题标题】:retrieve record and surrounding records in Entity Framework在实体框架中检索记录和周围记录
【发布时间】:2013-07-31 20:57:04
【问题描述】:

我有一个包含数千条记录的表,主键名为 Id。

随着时间的推移,记录已被删除,因此 Id 结构如下所示:

ID 1,2,5,7,12,15,17,34,45,89,97 ~ 到 2567,2743,2981 等

使用 c# 和实体框架,有没有办法通过查询找到特定的 Id 并检索它以及它周围的下一条和前十条记录?

我想我正在尝试捕获一个记录窗口。在 100 个项目的完美列表中,假设我需要记录 60,是否有可以检索记录 50-70 的查询?

【问题讨论】:

    标签: c#-4.0 entity-framework-4


    【解决方案1】:

    在正常情况下,您不应该关心 Id,因为它们是自动的,并不意味着是无缝的(如果您想做类似的事情)。

    不过,您可以使用以下查询选择您的条目:

    SELECT TOP 11 Id FROM Table WHERE ID >= 400 ORDER BY ID UNION
    SELECT TOP 11 Id From Table WHERE ID <= 400 ORDER BY ID Desc
    

    或者,您可以查看 SQL 的 RANGE 函数,它允许对行进行数字化,然后根据该数字进行选择

    还有 EF 版本的 Select-Union:

    idList.Where(id >= 400).OrderBy(id => id).Take(11).Union(
        idList.Where(id <= 400).OrderByDescending(id => id).Take(11));
    

    【讨论】:

      猜你喜欢
      • 2016-02-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多