ISqlModelMapper.LoadByPageAsync<TModel>(int currentIndex, int pageSize, object[] parameters, CancellationToken cancellationToken) Method
.NET Standard 2.x
Asynchronously retrieves data starting from a specified row according to the SQL query defined in a TModel
class.
Namespace: SnapObjects.Data
Assembly: SnapObjects.Data.dll
Syntax
public Task<ILoadable<TModel>> LoadByPageAsync<TModel>(int currentIndex, int pageSize, object[] parameters, CancellationToken cancellationToken)
Type Parameters
TModel
The type of a model class.
Parameters
currentIndex
System.Int32
The zero-based index number of the first row.
pageSize
System.Int32
The number of rows per page.
parameters
System.Object[]
One or more values that you want to use as retrieval arguments in the SQL SELECT statement defined in TModel
.
cancellationToken
CancellationToken
A cancellation token that can be used by other objects or threads to receive notice of cancellation.
Returns
Task<ILoadable<TModel>>
Returns a task that represents the asynchronous operation.
Examples
The following code example demonstrates how to load the specified page asynchronously according to the SQL query defined in the Department
class. It uses a CancellationTokenSource type parameter to make this operation cancelable.
using Appeon.ApiDoc.Models.School;
using System;
using System.Threading;
namespace Appeon.ApiDoc.ISqlModelMapperExamples
{
public class LoadByPageAsyncExample
{
private SchoolContext _context;
public LoadByPageAsyncExample(SchoolContext dataContext)
{
// Sets the data context.
_context = dataContext;
}
public async void Example2(CancellationTokenSource cts)
{
var mapper = _context.SqlModelMapper;
try
{
// Loads the first page (2 records per page)
// If a task has been cancelled, the call to the ISqlModelMapper.LoadByPageAsync
// method throws an OperationCanceledException.
var deptsPage1 = (await mapper.LoadByPageAsync<Department>(0, 2, cts.Token))
.ToList();
Console.WriteLine("Departments (Page 1):");
foreach (var department in deptsPage1)
{
Console.WriteLine(department.Name);
}
}
catch (OperationCanceledException e)
{
// The operation was cancelled before completion.
Console.WriteLine(e.Message);
}
catch (Exception e)
{
Console.WriteLine(e.Message);
}
finally
{
cts.Dispose();
}
/* The code produces the following output:
A task was canceled.
*/
}
}
}
Example Refer To
Model Class: Department
Applies to
.NET Standard
2.x