Collections
3.2.0
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 ;
}
efcore 또는 Query<T>
Where
nhibernate에서 IQueryable<T>
얻을 수 있습니다.
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
패키지를 설치합니다.
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
패키지를 설치합니다.
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