Las colecciones de NCC consisten en un conjunto de extensiones y herramientas basadas en la colección, como extensiones de paginación.
Nombre del paquete | Versión | Descargas |
---|---|---|
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 ;
}
O use un código más simplificado:
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 ;
}
Puede obtener IQueryable<T>
de Where
en Efcore o Query<T>
en nHibernate, y luego:
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 ;
}
Hazlo.
Instalar DotNetCore.Collections.Paginable.Chloe
Paquete:
Install-Package DotNetCore.Collections.Paginable.Chloe
entonces:
//... 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 ;
}
}
Instalar DotNetCore.Collections.Paginable.DosOrm
-paquete:
Install-Package DotNetCore.Collections.Paginable.DosOrm
entonces:
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 " ) , } ;
}
Instalar DotNetCore.Collections.Paginable.FreeSql
paquete:
Install-Package DotNetCore.Collections.Paginable.FreeSql
entonces:
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 ;
//...
o llamar al método de extensión de DBSET directamente:
var ctx = _freeSql . CreateDbContext ( ) ;
var source = ctx . Set < ExampleModel > ( ) ;
var page = source . GetPage ( 1 , 9 ) ;
var totalPageCount = page . TotalPageCount ;
//...
o
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 ) ;
}
}
Instalar DotNetCore.Collections.Paginable.SqlSugar
paquete:
Install-Package DotNetCore.Collections.Paginable.SqlSugar
entonces:
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 ;
//...
Instalar DotNetCore.Collections.Paginable.NHibernate
Package:
Install-Package DotNetCore.Collections.Paginable.NHibernate
entonces:
//... 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 ;
//...
}
o llamar al método de extensión de DBSET directamente:
Instalar DotNetCore.Collections.Paginable.EntityFrameworkCore
PACACK Primero:
Install-Package DotNetCore.Collections.Paginable.EntityFrameworkCore
entonces:
using ( var context = new ExampleDbContext ( ) )
{
var pagee = context . ExampleModels . GetPage ( 1 , 9 ) ;
var totalPageCount = page . TotalPageCount ;
//...
}
//...
Instalar DotNetCore.Collections.Paginable.SqlKata
Paquete:
Install-Package DotNetCore.Collections.Paginable.SqlKata
entonces:
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 ;
//...
}
Proyecto miembro del NCC, MIT