티스토리 뷰
에저 모바일 서비스에서는 기본적으로 한번 조회시에 50의 레코드만을 조회하도록 설정되어 있다.
하지만, 한번에 내가 원하는 모든 데이터를 조회하는 것이 필요해서, 찾아보다가 아래 포스트를 발견해서 사용해 보았는데 매우 만족스러운 결과를 보여준다.
참고 포스트
Retrieving more data from Azure Mobile Services using paging and LoadAllAsync extension
자세한 설명은 하지 않도록 하겠다. 다만, 약간의 수정이 필요하기 때문에 포스트를 하게 되었다. 그리고, 이 내용으로 확장 메소드를 만들면 사용하기가 매우 편리하다.
public static async Task<List<T>> LoadAllAsync<T>(this IMobileServiceTableQuery<T> table, int bufferSize = 1000)
{
IMobileServiceTableQuery<T> query = table.IncludeTotalCount();
IEnumerable<T> results = await query.ToEnumerableAsync();
long count = ((ITotalCountProvider) results).TotalCount;
if (results != null && count > 0)
{
var updates = new List<T>();
while (updates.Count < count)
{
List<T> next = await query.Skip(updates.Count).Take(bufferSize).ToListAsync();
updates.AddRange(next);
}
return updates;
}
return null;
}
위의 소스 코드 중 굵은 글씨 부분이 포스트와 다른 부분이다. 이전 버전 SDK에는 존재 했던 것 같은지 현재는 위의 이름으로 사용해야 한다.
실제 사용
var allCodes = await PublicHelper.Instance.CodeTable
.Where(p => p.ClassName == "MainCategory" || p.ClassName == "SubCategory")
.LoadAllAsync();
테이블 쿼리를 만든 후 마지막에 LoadAllAsync()를 붙여 주기만 하면 쿼리 조건에 해당하는 모든 데이터를 불러 올 수 있다.
'Azure' 카테고리의 다른 글
[Azure Mobile Service] Custom authorization server side & client side (0) | 2014.12.19 |
---|---|
[Azure Mobile Service] 사용자 인증 추가하기 (0) | 2014.12.18 |
Azure Mobile Service errors (0) | 2014.11.30 |
Azure Mobile Service - Map class to table with different name (0) | 2014.11.26 |
Azure Mobile Service error - The database name ... is invalid (0) | 2014.11.26 |
- Total
- Today
- Yesterday
- WPF
- XAML
- Windows 10
- .net
- #uwp
- Behavior
- Always Encrypted
- #Windows Template Studio
- uno-platform
- Bot Framework
- .net 5.0
- LINQ
- #MVVM
- PRISM
- ComboBox
- ef core
- UWP
- uno platform
- Visual Studio 2022
- #prism
- Cross-platform
- kiosk
- dotNETconf
- MVVM
- IOT
- visual studio 2019
- C#
- Microsoft
- Build 2016
- windows 11
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |