C# 是否可以使用视图翻页浏览数据?

C# 是否可以使用视图翻页浏览数据?,c#,sql-server,entity-framework,C#,Sql Server,Entity Framework,我目前有一个视图,它返回所有80K+记录。我想实现的是一种一次分页60行记录的方法。我在SQL上的当前代码在视图中。我的问题是,是否可以使用我的视图一次翻阅60条记录 景色 选择o.ID、o.Name、o.DateRan、s.Name作为作业、o.Start、o.[End]、o.Status、o.Logs 从dbo.output作为o左外部联接 dbo.jobs作为j ON o.Job=j.ID左外连接 dbo.scripts作为j上的s.Script=s.ID 其中o.DateRanx.ID.

我目前有一个视图,它返回所有80K+记录。我想实现的是一种一次分页60行记录的方法。我在SQL上的当前代码在视图中。我的问题是,是否可以使用我的视图一次翻阅60条记录

景色

选择o.ID、o.Name、o.DateRan、s.Name作为作业、o.Start、o.[End]、o.Status、o.Logs 从dbo.output作为o左外部联接 dbo.jobs作为j ON o.Job=j.ID左外连接 dbo.scripts作为j上的s.Script=s.ID 其中o.DateRan _产出=新实体; _output.Configuration.ProxyCreationEnabled=false; _output.Configuration.LazyLoadingEnabled=false; var\u ot=await\u output.dashboardview.orderbydegeneratingx=>x.ID.ToListAsync.ConfigureAwaitfalse;
预期的结果是能够从视图中成功翻页浏览结果。

您有两个选项来执行分页

您可以在一个新的存储过程中移动视图偏移量0 ROWS FETCH NEXT 60 ROWS的分页,该存储过程接受Skip和Take两个参数

或者,可以从视图中使用简单的IQueryable,然后使用Skip、Take和linq方法


在处理大型表时,我个人更喜欢第一种方法

您需要偏移量的参数,因此它应该是一个存储过程。在LINQ中,您可以使用take60,它与从表中读取时的分页没有什么不同:Skip/Take。