Коллекции NCC состоит из набора расширений и инструментов, основанных на сборе, таких как расширения пейджинга.
Название пакета | Версия | Загрузки |
---|---|---|
Dotnetcore.collections.paginable | ||
Dotnetcore.collections.paginable.chloe | ||
Dotnetcore.collections.paginable.dosorm | ||
Dotnetcore.collections.paginable.entityframeworkcore | ||
Dotnetcore.collections.paginable.freesql | ||
Dotnetcore.collections.paginable.nhibernate | ||
Dotnetcore.collections.paginable.sqlkata | ||
Dotnetcore.collections.paginable.sqlsugar |
Install-Package DotNetCore.Collections.Paginable
IEnumerable < ExampleModel > list = GetList ( ) ; //...
//Get a collection of Page, each page has 50 PageMembers
var paginableList = list . ToPaginable ( 50 ) ;
//Get page 15th
var page = paginableList . GetPage ( 15 ) ;
for ( var i = 0 ; i < page . CurrentPageSize ; i ++ )
{
var itemNumber = page [ i ] . ItemNumber ;
var itemValue = page [ i ] . Value ;
}
Или используйте более оптимизированный код:
IEnumerable < ExampleModel > list = GetList ( ) ; //...
//Get page 15th, each page has 50 items.
ar page = list . GetPage ( 15 , 50 ) ;
for ( var i = 0 ; i < page . CurrentPageSize ; i ++ )
{
var itemNumber = page [ i ] . ItemNumber ;
var itemValue = page [ i ] . Value ;
}
Вы можете получить IQueryable<T>
Where
в efcore или Query<T>
в nhibernate, а затем:
IQueryable < ExampleModel > queryable = GetQueryable ( ) ; //...
var page = queryable . GetPage ( 15 , 50 ) ;
var totalMemberCount = page . TotalMemberCount ;
for ( var i = 0 ; i < page . CurrentPageSize ; i ++ )
{
var itemNumber = page [ i ] . ItemNumber ;
var itemValue = page [ i ] . Value ;
}
Просто сделай это.
Установить DotNetCore.Collections.Paginable.Chloe
пакет:
Install-Package DotNetCore.Collections.Paginable.Chloe
затем:
//... do some config for Chloe by EntityTypeBuilder<ExampleModel>
using ( var db = new MsSqlContext ( connectionString ) )
{
var page = db . Query < ExampleModel > ( ) . GetPage ( 15 , 50 ) ;
var totalPageCount = page . TotalPageCount ;
var totalMemberCount = page . TotalMemberCount ;
var pageSize = page . PageSize ;
var currentPageNumber = page . CurrentPageNumber ;
var currentPageSize = page . CurrentPageSize ;
var hasNext = page . HasNext ;
var HasPrevious = page . HasPrevious ;
for ( var i = 0 ; i < currentPageSize ; i ++ )
{
var id = page [ i ] . Value . Id ;
}
}
Установить DotNetCore.Collections.Paginable.DosOrm
Package:
Install-Package DotNetCore.Collections.Paginable.DosOrm
затем:
var _session = new DbSession ( DatabaseType . SqlServer , connectionString ) ;
var page = _dosOrmSession . From < ExampleModel > ( ) . GetPage ( 1 , 9 ) ;
var totalPageCount = page . TotalPageCount ;
//...
.
.
.
class ExampleModel : Entity
{
public ExampleModel ( ) : base ( " ExampleModels " ) { }
public virtual int Id { get ; set ; }
public override Field [ ] GetPrimaryKeyFields ( ) => new Field [ ] { new Field ( " Id " ) , } ;
}
Установить DotNetCore.Collections.Paginable.FreeSql
пакет:
Install-Package DotNetCore.Collections.Paginable.FreeSql
затем:
var _freeSql = new FreeSql . FreeSqlBuilder ( )
. UseConnectionString ( DataType . SqlServer , connectionString )
. UseAutoSyncStructure ( false )
. Build ( ) ;
//... do some config for FreeSql
var page = _freeSql . Select < ExampleModel > ( ) . GetPage ( 1 , 9 ) ;
var totalPageCount = page . TotalPageCount ;
//...
или напрямую вызовите метод расширения DBSET:
var ctx = _freeSql . CreateDbContext ( ) ;
var source = ctx . Set < ExampleModel > ( ) ;
var page = source . GetPage ( 1 , 9 ) ;
var totalPageCount = page . TotalPageCount ;
//...
или
using ( var ctx = new ExampleDbContext ( ) )
{
var page = ctx . ExampleModels . GetPage ( 1 , 9 ) ;
var totalPageCount = page . TotalPageCount ;
//...
}
.
.
.
class ExampleDbContext : DbContext
{
public DbSet < ExampleModel > ExampleModel { get ; set ; }
protected override void OnConfiguring ( DbContextOptionsBuilder builder )
{
builder . UseFreeSql ( _freeSqlInstance ) ;
}
}
Установите DotNetCore.Collections.Paginable.SqlSugar
Package:
Install-Package DotNetCore.Collections.Paginable.SqlSugar
затем:
var sqlSugar = new SqlSugatClient ( new ConnectionConfig {
ConnectionString = connectionString ,
DbType = DbTypee . SqlServer ,
IsAutoCloseConnection = true
} ) ;
//... do some config for sqlSugar
var page = _sqlSugar . Query < ExampleModel > ( ) . GetPage ( 1 , 9 ) ;
var totalPageCount = page . TotalPageCount ;
//...
Установить DotNetCore.Collections.Paginable.NHibernate
пакет:
Install-Package DotNetCore.Collections.Paginable.NHibernate
затем:
//... do some config for NHibernate by FluentNHibernate.ClassMap<ExampleModel>
using ( var session = GetAndOpenSession ( ) )
{
var page = session . QueryOver < ExampleModel > ( ) . GetPage ( 1 , 9 ) ;
var totalPageCount = page . TotalPageCount ;
//...
}
//... do come config for EFCore
using ( var context = new ExampleDbContext ( ) )
{
var page = context . ExampleModels . Where ( x => x . Id > 100 ) . GetPage ( 1 , 9 ) ;
var totalPageCount = page . TotalPageCount ;
//...
}
или напрямую вызовите метод расширения DBSET:
Установить DotNetCore.Collections.Paginable.EntityFrameworkCore
Сначала:
Install-Package DotNetCore.Collections.Paginable.EntityFrameworkCore
затем:
using ( var context = new ExampleDbContext ( ) )
{
var pagee = context . ExampleModels . GetPage ( 1 , 9 ) ;
var totalPageCount = page . TotalPageCount ;
//...
}
//...
Установить DotNetCore.Collections.Paginable.SqlKata
пакет:
Install-Package DotNetCore.Collections.Paginable.SqlKata
затем:
using ( var connection = new SqlConnection ( connectionString ) )
{
connection . Open ( ) ;
var compiler = new SqlServerCompiler ( ) ;
var db = new QueryFactory ( connection , compiler ) ;
var page = db . Query ( " ExampleModels " ) . GetPage < ExampleModel > ( 1 , 9 ) ;
var totalPageCount = page . TotalCount ;
//...
}
Член проекта NCC, MIT