无论如何要指向 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.
创建您需要的实际对象
我知道 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.
创建您需要的实际对象