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

Fat*_*mov -1 c# entity-framework-core .net-core

我的数据库中有一个视图.我创建了视图模型并调用它EF Core.视图中有16行.当我调用它Take(10)并使用EF Core它返回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; }

}
Run Code Online (Sandbox Code Playgroud)

在我的行动中:

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

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

https://imgur.com/a/xmP3q32

Roe*_*oel 7

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

如果以上内容没有回答您的问题,请提供更多见解,以及您使用EF的数据库提供商?

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

  • @FatikhanGasimov基于截图,请参阅上面的答案:) context.MyView*应*包含所有数据.但是*listOfData*应该只包含10条记录. (2认同)