使用Entity Framework从数据库中获取前N行

时间:2015-05-24 12:47:46

标签: c# sql-server entity-framework

我获得前N行的过程

  1. 从数据库中获取所有数据使用实体框架

    var list = new MyDbContext().Set<EntityName>();

  2. 使用C#

    获取前N行

    var firstNRows = list.Take(N); // N = int

  3. 假设,

    如果N = 2,那么我想要表格的前两行,但实体给我表格的所有行。有没有办法让实体只从表中给出前N行而不是表中的所有数据?

1 个答案:

答案 0 :(得分:2)

实际上var list = new MyDbContext().Set<EntityName>();根本没有数据,它返回IQueryable<EntityName>,它只是所有行查询的表示。

当你var firstNRows = list.Take(N);也没有数据时,那也是IQueryable<EntityName>,它代表了数据库中前N行的查询。

在执行类似.ToList()

之类的操作之前,您实际上并未从数据库中获取数据
var firstNRowsList = firstNRows.ToList(); //The database is queried here for the first time.