using System;
using System.Collections.Generic;
using System.Linq;
using DotNetCore.Collections.Paginable;
using Microsoft.EntityFrameworkCore;
namespace Sample.EfCore
{
class Program
{
static void Main(string[] args)
{
using (var ctx = new DemoContext())
{
var a = ctx.DemoModels.GetPage(5, 20);
var b = ctx.DemoModels.Where(x => x.IsValid).GetPage(2, 20);
var c = ctx.DemoModels.Include(l => l.Items).GetPage(5, 20);
var d = ctx.DemoModels.Include(l => l.Items).Where(x => x.IsValid).GetPage(2, 20);
foreach (var itemOfA in a)
{
var indexInDb = itemOfA.ItemNumber;
var indexInResult = itemOfA.Offset;
var actuallyValue = itemOfA.Value;
}
foreach (var itemOfC in c.ToOriginalItems())
{
}
}
using (var ctx = new DemoContext())
{
var e = ctx.DemoModels.ToPaginable(20);
var howManyItemsInDb = e.MemberCount;
var howManyPagesYouCanGet = e.PageCount;
var howManyItemsDoYouWantPerPage = e.PageSize;
var f = e.GetPage(2);
var realPageNumberYouHaveRequested = f.CurrentPageNumber;
var countOfPageYouWantToGet = f.PageSize;
var realCountOfItemsYouHaveGot = f.CurrentPageSize;
var realCountOfItemsInDb = f.TotalMemberCount;
var realCountOfPagesYouCanGet = f.TotalPageCount;
var originResults = f.ToOriginalItems();
foreach (var originItem in originResults)
{
}
foreach (var itemInPage in f)
{
var indexInDb = itemInPage.ItemNumber;
var indexInResult = itemInPage.Offset;
var actuallyValue = itemInPage.Value;
}
}
using (var ctx = new DemoContext())
{
var g = ctx.DemoModels.ToPaginable(20, 1000);
}
}
public class DemoContext : DbContext
{
public virtual DbSet<DemoModel> DemoModels { get; set; }
public virtual DbSet<DemoModelItem> DemoModelItems { get; set; }
}
public class DemoModel
{
public Guid Id { get; set; }
public List<DemoModelItem> Items { get; set; }
public bool IsValid { get; set; }
}
public class DemoModelItem
{
public Guid Id { get; set; }
public Guid FatherId { get; set; }
public string Name { get; set; }
}
}
}