콘텐츠로 건너뛰기

kr.bbon.EntityFrameworkCore.Extensions Package

publish to nuget

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

이 사이트는 광고를 포함하고 있습니다.
광고로 발생한 수익금은 서버 유지 관리에 사용되고 있습니다.

This site contains advertisements.
Revenue generated by the ad servers are being used for maintenance.

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

  1. 핑백: Review 2021 | {bbon}

댓글 남기기