无论如何要指向 dbcontext 中的特定位置行?

Is there anyway to point to specific position row in dbcontext?

我知道 dbcontext 有 FirstorDefault 和 LastorDefault 来指向最旧和最新创建的行。但我需要知道如何指向其他人或特定行。我现在的目标是最后一行正上方的行。默认情况下,数据按创建时间显示,我打算保持不变。

看起来你指的是 Linq,对吧?

一种方法是抓住一切。 然后,调用 .ToList() 方法。 那时你可以在 [4] 或 [6] 等大括号中使用索引

示例: 列出汽车 = _context.Cars.ToList(); Car specificCar = cars[4];

注意:如果 DbContext 中有大量数据库行,您的性能会很慢,因为 .ToList() 方法首先获取所有行。

另一种方法是如果有一些唯一的 ID,如数据库 ID 等,则执行 .Find() 方法

示例:Car specificCar = _context.Cars.Find(f=>f.id == myUid); 如果(特定汽车==空)return; // 需要检查 null 等......

我想如果您对 Linq 表达式稍微熟悉一点,您会发现有多种方法可以实现这一点。

.SingleOrDefault(s=>s.CarMake == make); .Where(w=>w.CarMake == "Ferrari").ToList().. 然后从那里开始。 等等

首先,您需要找到一个可靠排序的列。假设默认情况下的排序顺序可以使您需要的任何地方 where(expression of Index) then do (things) 将导致可能的问题。

我假设您有一个 createDate 列作为示例:

var secondToLastRecord = fooEntities.OrderByDescending(o => o.CreateDate).Skip(1).Take(1);

这将为您提供 1 条记录的 IQueryable 和倒数第二条记录。

因为最新的记录会在列表的顶部,您可以跳过它。然后您获取 (select) 第二条记录。然后,您可以使用 Select 或 First.

创建您需要的实际对象