클래스 SubscriptionSet
Realm 인스턴스의 활성 구독 세트를 나타내는 컬렉션입니다. 이는 FlexibleSyncConfiguration 과 함께 서버와 동기화하려는 쿼리 세트를 선언하는 데 사용됩니다. 구독 세트에 자유롭게 액세스하고 읽을 수 있지만 변경은 Update(조치) 블록에서 이루어져야 합니다.
네임스페이스: Realms.동기화
어셈블리: Realm.exe
구문
public class SubscriptionSet : IReadOnlyList<Subscription>, IReadOnlyCollection<Subscription>, IEnumerable<Subscription>, IEnumerable
비고
구독 세트에 대한 모든 변경 사항은 로컬에서 유지되며 다음에 애플리케이션이 시작될 때 사용할 수 있습니다. 즉, 매번 동일한 쿼리를 구독할 필요가 없습니다. 구독 세트 업데이트는 오프라인 상태에서도 수행할 수 있으며, 연결이 복원될 때마다 최신 업데이트만 서버로 전송됩니다.
가능한 한 많이 업데이트를 배치하고 애플리케이션에 필요한 데이터 세트를 미리 요청하는 것이 좋습니다. 다운로드해야 하는 데이터가 매우 적더라도 Realm의 활성 구독 세트를 업데이트하는 것은 서버 측에서 비용이 많이 드는 작업입니다.
속성
| 이 페이지 편집 소스 보기Count
collection의 요소 수를 가져옵니다.
선언
public int Count { get; }
속성 값
유형 | 설명 |
---|---|
int | collection의 요소 수입니다. |
오류
선언
public Exception? Error { get; }
속성 값
유형 | 설명 |
---|---|
예외 | 서버에서 구독 세트가 거부된 이유에 대한 추가 세부 정보를 제공하는 예외 입니다. |
this[int]
세트의 지정된 인덱스에서 구독 을 가져옵니다.
선언
public Subscription this[int index] { get; }
매개변수
유형 | 이름 | 설명 |
---|---|---|
int | index | 가져올 요소의 인덱스(0부터 시작)입니다. |
속성 값
유형 | 설명 |
---|---|
서브스크립션 | 세트에서 지정된 인덱스에 있는 구독 입니다. |
상태
구독 세트의 상태를 가져옵니다.
선언
public SubscriptionSetState State { get; }
속성 값
유형 | 설명 |
---|---|
구독 세트 상태 | 구독 세트의 상태입니다. |
방법
| 이 페이지 편집 소스 보기Add<T>(IQueryable<T>, SubscriptionOptions?)
활성 구독 세트에 쿼리를 추가합니다. 쿼리는 동일한 유형에 대한 기존 쿼리와 OR 문을 통해 조인됩니다.
선언
public Subscription Add<T>(IQueryable<T> query, SubscriptionOptions? options = null) where T : IRealmObject
매개변수
유형 | 이름 | 설명 |
---|---|---|
IQueryable<T> | 쿼리 | 서버에서 일치시킬 쿼리입니다. |
SubscriptionOptions | 옵션 | 수행될 삽입의 이름 및/또는 유형을 제어하는 구독 옵션입니다. |
반환
유형 | 설명 |
---|---|
서브스크립션 | 지정된 쿼리를 나타내는 구독입니다. |
유형 매개변수
이름 | 설명 |
---|---|
t | 쿼리 결과의 객체 유형입니다. |
비고
이미 존재하는 쿼리를 추가하는 것은 아무런 의미가 없으며 기존 구독이 반환됩니다.
찾기(문자열)
이름으로 구독을 찾습니다.
선언
public Subscription? Find(string name)
매개변수
유형 | 이름 | 설명 |
---|---|---|
문자열 | 이름 | 구독의 이름입니다. |
반환
유형 | 설명 |
---|---|
서브스크립션 | 구독 세트에 |
Find<T>(IQueryable<T>)
쿼리로 구독을 찾습니다.
선언
public Subscription? Find<T>(IQueryable<T> query) where T : IRealmObject
매개변수
유형 | 이름 | 설명 |
---|---|---|
IQueryable<T> | 쿼리 | 구독을 설명하는 쿼리입니다. |
반환
유형 | 설명 |
---|---|
서브스크립션 | 쿼리 가 제공된 와 일치하는 구독 |
유형 매개변수
이름 | 설명 |
---|---|
t | 쿼리의 객체 유형입니다. |
Remove(Subscription)
이 구독 세트에서 제공된 subscription
을(를) 제거합니다.
선언
public bool Remove(Subscription subscription)
매개변수
유형 | 이름 | 설명 |
---|---|---|
서브스크립션 | 서브스크립션 | 제거할 구독입니다. |
반환
유형 | 설명 |
---|---|
부울 |
|
Remove(string)
지정된 name
을(를) 사용하여 구독을 제거합니다.
선언
public bool Remove(string name)
매개변수
유형 | 이름 | 설명 |
---|---|---|
문자열 | 이름 | 제거할 구독의 이름입니다. |
반환
유형 | 설명 |
---|---|
부울 |
|
RemoveAll(bool)
이 구독 세트에서 모든 구독을 제거합니다.
선언
public int RemoveAll(bool removeNamed = false)
매개변수
유형 | 이름 | 설명 |
---|---|---|
부울 | removeNamed | 명명된 구독도 제거할지 여부를 나타내는 플래그입니다. 기본값은 false입니다. |
반환
유형 | 설명 |
---|---|
int | 세트에 존재했다가 제거된 구독 수입니다. |
RemoveAll(string, bool)
제공된 className
에 대한 모든 구독을 제거합니다.
선언
public int RemoveAll(string className, bool removeNamed = false)
매개변수
유형 | 이름 | 설명 |
---|---|---|
문자열 | 클래스 이름 | 구독을 제거할 유형의 이름입니다. |
부울 | removeNamed | 명명된 구독도 제거할지 여부를 나타내는 플래그입니다. 기본값은 false입니다. |
반환
유형 | 설명 |
---|---|
int | 이 유형에 대해 존재했다가 제거된 구독 수입니다. |
RemoveAll<T>(bool)
지정된 유형에 대한 모든 구독을 제거합니다.
선언
public int RemoveAll<T>(bool removeNamed = false) where T : IRealmObject
매개변수
유형 | 이름 | 설명 |
---|---|---|
부울 | removeNamed | 명명된 구독도 제거할지 여부를 나타내는 플래그입니다. 기본값은 false입니다. |
반환
유형 | 설명 |
---|---|
int | 이 유형에 대해 존재했다가 제거된 구독 수입니다. |
유형 매개변수
이름 | 설명 |
---|---|
t | 구독을 제거해야 하는 객체 유형입니다. |
Remove<T>(IQueryable<T>, bool)
지정된 query
을(를) 사용하여 구독을 제거합니다.
선언
public int Remove<T>(IQueryable<T> query, bool removeNamed = false) where T : IRealmObject
매개변수
유형 | 이름 | 설명 |
---|---|---|
IQueryable<T> | 쿼리 | 일치하는 구독을 제거해야 하는 쿼리입니다. |
부울 | removeNamed | 명명된 구독도 제거할지 여부를 나타내는 플래그입니다. 기본값은 false입니다. |
반환
유형 | 설명 |
---|---|
int |
|
유형 매개변수
이름 | 설명 |
---|---|
t | 쿼리 결과의 객체 유형입니다. |
Update(Action)
구독 세트를 업데이트하고 백그라운드에서 서버로 요청을 보냅니다.
선언
public void Update(Action action)
매개변수
유형 | 이름 | 설명 |
---|---|---|
작업 | 조치 | 조치를 실행, 이 세트에 대한 구독 추가 또는 제거. |
비고
Update(조치) 을 호출하는 것은 Add<T>(IQueryable<T>, SubscriptionOptions?), Remove(Subscription) 또는 RemoveAll(bool) 을 호출하여 구독 세트를 변경하기 위한 전제 조건입니다.
이를 호출하면 이 SubscriptionSet 의 내용이 업데이트될 수 있습니다(예: 백그라운드 스레드에서 다른 조치 이 호출되었거나 상태 가 변경된 경우).
서버가 업데이트된 구독과 일치하는 데이터를 확인하고 다시 보낼 때까지 기다리려면 WaitForSynchronizationAsync(CancelationToken?) 을 사용합니다.
WaitForSynchronizationAsync(CancelationToken?)
서버가 구독 세트를 확인하고 일치하는 객체를 반환할 때까지 기다립니다.
선언
public Task WaitForSynchronizationAsync(CancellationToken? cancellationToken = null)
매개변수
유형 | 이름 | 설명 |
---|---|---|
취소 토큰? | 취소 토큰 | 대기 작업을 취소하는 데 사용할 수 있는 선택적 취소 토큰입니다. |
반환
유형 | 설명 |
---|---|
작업 | 대기 가능 작업으로, 성공적으로 완료되면 서버가 구독 변경을 처리하고 새 구독과 일치하는 모든 데이터를 전송했음을 나타냅니다. |
비고
구독 세트의 상태 가 완료 인 경우 반환된 작업 은 즉시 완료됩니다. State 가 Error 이면 반환된 작업은 오류와 함께 즉시 거부됩니다.
변경으로 인해 Realm에서 객체가 제거되는 경우(예: 구독이 제거된 경우) 반환된 작업이 완료되기 전에 해당 객체가 제거된 것입니다.