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
- Nuget: kr.bbon.EntityFrameworkCore.Extensions
- .NET
- Nuget: Microsoft.EntityFrameworkCore
GitHub
이 사이트는 광고를 포함하고 있습니다.
광고로 발생한 수익금은 서버 유지 관리에 사용되고 있습니다.This site contains advertisements.
Revenue generated by the ad servers are being used for maintenance.
핑백: Review 2021 | {bbon}