尽管我使用Take()方法,但EF Core返回所有数据

时间:2019-02-19 06:31:16

标签: c# .net-core entity-framework-core

我在数据库中有一个视图。我已经创建了视图模型,并使用EF Core进行了调用。视图中有16行。当我使用EF Core调用它并使用Take(10)时,它返回10行,但我看DBSet那里显示的所有行。有关详细信息,请参见我的代码

[Table("my_view", Schema ="dbo")]
public class MyView
{

    [Column("id")]
    [Key]
    public int Id { get; set; }

    [Column("name")]
    public string Name { get; set; }

}

在我的行动中:

public JsonResult Index()
{
    using (var context = new CCContext())
    {
        var listOfData = context.MyView
                            .AsQueryable().Take(10).ToList();
        return Json(listOfData);
    }
}

PS。对于某些问题,我无法上传结果屏幕。(https://m.imgur.com/gallery/xmP3q32

https://imgur.com/a/xmP3q32

1 个答案:

答案 0 :(得分:7)

如果您的意思是context.MyView包含所有行,那么您是对的。因为那是数据库中表的表示。但是,在您的示例中,listOfData仅应包含10行。如果是这样,那么这应该是预期的。

如果以上内容未能回答您的问题,请提供更多的见解,并且您正在使用EF的哪个数据库提供程序?

为澄清起见: 数据不存在,直到您要求调试器(或代码)为您获取数据。看到它的唯一原因是因为您要求调试器显示其内容,并因此获取其内容。如果您不要求它,它就不会。