콘텐츠로 건너뛰기

kr.bbon.EntityFrameworkCore.Extensions Package

Nuget: kr.bbon.EntityFrameworkCore.Extensions 페이지에서 패키지를 찾을 수 있습니다.

개요

Microsoft.EntityFrameworkCore 패키지를 사용하면서, 반복적으로 사용되는 기능을 정리해서 제공합니다.

기능

Sort 확장 메서드

문자열 형식으로 제공된 필드 이름을 기준으로 정렬하는 확장 메서드입니다.

IQueryable<T> 인터페이스에 Sort 확장 메서드를 추가합니다.

Sort 확장메서드는 내부적으로 OderBy, OrderByDescending, ThenBy, ThenByDescending 확장 메서드를 사용합니다.

Sort(string fieldName, [bool isAscending = true])

fieldName 은 대소문자를 구분하지 않습니다.
fieldName 에 해당하는 필드를 찾을 수 없으면 예외가 발생합니다.

사용법:

Document 형식의 Content 오름차순, Id 내림차순으로 정렬하는 코드입니다. [코드 보기]

using(var ctx = new ExampleDbContext()){
    var result = ctx.Documents.Sort(nameof(Document.Content)).Sort(nameof(Document.Id), false);
}

ToPagedModel 확장 메서드

페이징된 데이터 목록을 현재 페이지, 전체 항목수, 전체 페이지수, 항목 제한수와 함께 제공하는 확장 메서드입니다.

IQueryable<T> 인터페이스에 ToPagedModel 확장 메서드를 추가합니다.

IQueryable 인터페이스를 기준으로 페이징된 IPagedModel 인터페이스 형식의 데이터를 제공합니다.

ToPagedModelAsync(int page, int limit, CancellationToken cancellationToken)

ToPagedModel(int page, int limit)

public interface IPagedModel<TModel>
{
    int CurrentPage { get; init; }
    IEnumerable<TModel> Items { get; init; }
    int Limit { get; init; }
    int TotalItems { get; init; }
    int TotalPages { get; init; }
}

page 는 1부터 시작합니다.
limit 는 0보다 큰 값을 사용합니다.

using(var ctx = new ExampleDbContext()){
    var result = ctx.Documents.Sort(nameof(Document.Content)).Sort(nameof(Document.Id), false).ToPagedModel(1, 10);
}

관련 링크

GitHub

“kr.bbon.EntityFrameworkCore.Extensions Package”의 1개의 댓글

  1. 핑백: Review 2021 | {bbon}

댓글 남기기응답 취소

Exit mobile version