Realm.Dynmic 구조화
Realm 인스턴스에 대한 동적 API를 노출하는 클래스입니다.
상속된 멤버
네임스페이스: Realms
어셈블리: Realm.exe
구문
[Preserve(AllMembers = true)]
public readonly struct Realm.Dynamic
방법
| 이 페이지 편집 소스 보기AddEmbeddedObjectToDictionary(객체, 문자열)
포함된 객체를 생성하여 지정된 사전에 추가합니다. 이렇게 하면 새로 생성된 내장된 객체의 올바른 소유권도 할당됩니다.
선언
public IEmbeddedObject AddEmbeddedObjectToDictionary(object dictionary, string key)
매개변수
유형 | 이름 | 설명 |
---|---|---|
객체 | 사전 | 객체가 추가될 사전입니다. |
문자열 | 키 | 객체를 추가할 키입니다. |
반환
유형 | 설명 |
---|---|
IEmbeddedObject | 새로 생성된 객체가 딕셔너리에 추가된 후의 객체입니다. |
비고
내장된 객체가 포함된 사전은 소유되지 않은 내장된 객체를 생성해야 하는 경우 객체를 직접 추가할 수 없으며, 이는 불가능합니다. 이것이 바로 Add(TKey, TValue) 및 this[TKey] 대신 AddEmbeddedObjectToDictionary(object, string) 및 SetEmbeddedObjectInDictionary(object, string) 를 사용해야 하는 이유입니다.
다음도 참조하세요.
| 이 페이지 편집 소스 보기AddEmbeddedObjectToList(객체)
내장된 객체를 생성하여 지정된 목록에 추가합니다. 이렇게 하면 새로 생성된 내장된 객체의 올바른 소유권도 할당됩니다.
선언
public IEmbeddedObject AddEmbeddedObjectToList(object list)
매개변수
유형 | 이름 | 설명 |
---|---|---|
객체 | 목록 | 객체를 추가할 목록입니다. |
반환
유형 | 설명 |
---|---|
IEmbeddedObject | 새로 생성된 객체(목록 맨 뒤에 추가된 후의 객체)입니다. |
비고
포함된 객체 목록은 객체를 직접 추가할 수 없습니다. 이것이 바로 Add(T), Insert(int, T) 및 this[int] 대신 AddEmbeddedObjectToList(object), InsertEmbeddedObjectInList(object, int) 및 SetEmbeddedObjectInList(object, int) 를 사용해야 하는 이유입니다.
다음도 참조하세요.
| 이 페이지 편집 소스 보기모두(문자열)
특정 유형의 모든 객체를 조회합니다.
선언
public IQueryable<IRealmObject> All(string className)
매개변수
유형 | 이름 | 설명 |
---|---|---|
문자열 | 클래스 이름 | 스키마에 정의된 객체의 유형입니다. |
반환
유형 | 설명 |
---|---|
IQueryable<IRealmObject> | 추가 필터링 없이 이 영역에서 className 의 모든 객체를 반복할 수 있는 쿼리 가능 컬렉션입니다. |
비고
뷰 내부의 객체에는 동적으로 액세스되므로 LINQ 또는 기타 표현식 조건자를 사용하여 뷰를 쿼리할 수 없습니다.
CreateEmbeddedObjectForProperty(IRalmObjectBase, 문자열)
영역에서 managed 내장된 객체의 팩토리입니다. 쓰기 트랜잭션 (write transaction) 내에서만 유효합니다. 내장된 객체는 즉시 소유해야 하므로 특정 속성에 대해서만 생성할 수 있습니다.
선언
public IEmbeddedObject CreateEmbeddedObjectForProperty(IRealmObjectBase parent, string propertyName)
매개변수
유형 | 이름 | 설명 |
---|---|---|
IRealmObjectBase | 부모 | 새로 생성된 내장된 객체를 소유할 상위 IRealmObject 또는 IEmbeddedObject 입니다. |
문자열 | 속성 이름 | 새로 생성된 내장된 객체가 할당될 속성입니다. |
반환
유형 | 설명 |
---|---|
IEmbeddedObject | 동적으로 액세스되는 내장된 객체입니다. |
CreateObject(string)
영역에서 기본 키가 없는 관리 객체에 대한 팩토리입니다. 쓰기 트랜잭션(write transaction) 내에서만 유효합니다.
선언
public IRealmObjectBase CreateObject(string className)
매개변수
유형 | 이름 | 설명 |
---|---|---|
문자열 | 클래스 이름 | 스키마에 정의된 대로 생성할 객체 유형입니다. |
반환
유형 | 설명 |
---|---|
IRealmObjectBase | 동적으로 액세스되는 Realm 객체입니다. |
비고
Realm 인스턴스가 유형이 지정되지 않은 스키마에서 생성된 경우(예: 이전 버전의 영역에서 마이그레이션하는 경우) 반환되는 객체는 완전히 동적입니다. GetInstance(RealmConfigurationBase?) 를 호출할 때 기본값으로 형식화된 스키마에서 Realm이 생성된 경우 반환되는 객체는 사용자 정의 클래스의 인스턴스입니다.
예외
유형 | 조건 |
---|---|
RealmInvalidTransactionException | Realm 에 활성화된 쓰기 트랜잭션 (write transaction)이 없을 때 이 옵션을 호출하는 경우 |
ArgumentException | 기본 키가 정의된 객체에 대해 이 메서드를 사용하는 경우. |
CreateObject(문자열, ObjectId?)
영역에 기본 키가 있는 관리 객체의 팩토리입니다. 쓰기 트랜잭션(write transaction) 내에서만 유효합니다.
선언
public IRealmObjectBase CreateObject(string className, ObjectId? primaryKey)
매개변수
유형 | 이름 | 설명 |
---|---|---|
문자열 | 클래스 이름 | 스키마에 정의된 대로 생성할 객체 유형입니다. |
ObjectId? | 기본 키 | 생성할 객체의 기본 키입니다. |
반환
유형 | 설명 |
---|---|
IRealmObjectBase | 동적으로 액세스되는 Realm 객체입니다. |
비고
Realm 인스턴스가 유형이 지정되지 않은 스키마에서 생성된 경우(예: 이전 버전의 영역에서 마이그레이션하는 경우) 반환되는 객체는 완전히 동적입니다. GetInstance(RealmConfigurationBase?) 를 호출할 때 기본값으로 형식화된 스키마에서 Realm이 생성된 경우 반환되는 객체는 사용자 정의 클래스의 인스턴스입니다.
예외
유형 | 조건 |
---|---|
RealmInvalidTransactionException | Realm 에 활성화된 쓰기 트랜잭션 (write transaction)이 없을 때 이 옵션을 호출하는 경우 |
ArgumentException |
|
CreateObject(문자열, GUID?)
영역에 기본 키가 있는 관리 객체의 팩토리입니다. 쓰기 트랜잭션(write transaction) 내에서만 유효합니다.
선언
public IRealmObjectBase CreateObject(string className, Guid? primaryKey)
매개변수
유형 | 이름 | 설명 |
---|---|---|
문자열 | 클래스 이름 | 스키마에 정의된 대로 생성할 객체 유형입니다. |
가이드? | 기본 키 | 생성할 객체의 기본 키입니다. |
반환
유형 | 설명 |
---|---|
IRealmObjectBase | 동적으로 액세스되는 Realm 객체입니다. |
비고
Realm 인스턴스가 유형이 지정되지 않은 스키마에서 생성된 경우(예: 이전 버전의 영역에서 마이그레이션하는 경우) 반환되는 객체는 완전히 동적입니다. GetInstance(RealmConfigurationBase?) 를 호출할 때 기본값으로 형식화된 스키마에서 Realm이 생성된 경우 반환되는 객체는 사용자 정의 클래스의 인스턴스입니다.
예외
유형 | 조건 |
---|---|
RealmInvalidTransactionException | Realm 에 활성화된 쓰기 트랜잭션 (write transaction)이 없을 때 이 옵션을 호출하는 경우 |
ArgumentException |
|
CreateObject(문자열, 긴?)
영역에 기본 키가 있는 관리 객체의 팩토리입니다. 쓰기 트랜잭션(write transaction) 내에서만 유효합니다.
선언
public IRealmObjectBase CreateObject(string className, long? primaryKey)
매개변수
유형 | 이름 | 설명 |
---|---|---|
문자열 | 클래스 이름 | 스키마에 정의된 대로 생성할 객체 유형입니다. |
long? | 기본 키 | 생성할 객체의 기본 키입니다. |
반환
유형 | 설명 |
---|---|
IRealmObjectBase | 동적으로 액세스되는 Realm 객체입니다. |
비고
Realm 인스턴스가 유형이 지정되지 않은 스키마에서 생성된 경우(예: 이전 버전의 영역에서 마이그레이션하는 경우) 반환되는 객체는 완전히 동적입니다. GetInstance(RealmConfigurationBase?) 를 호출할 때 기본값으로 형식화된 스키마에서 Realm이 생성된 경우 반환되는 객체는 사용자 정의 클래스의 인스턴스입니다.
예외
유형 | 조건 |
---|---|
RealmInvalidTransactionException | Realm 에 활성화된 쓰기 트랜잭션 (write transaction)이 없을 때 이 옵션을 호출하는 경우 |
ArgumentException |
|
CreateObject(문자열, 문자열?)
영역에 기본 키가 있는 관리 객체의 팩토리입니다. 쓰기 트랜잭션(write transaction) 내에서만 유효합니다.
선언
public IRealmObjectBase CreateObject(string className, string? primaryKey)
매개변수
유형 | 이름 | 설명 |
---|---|---|
문자열 | 클래스 이름 | 스키마에 정의된 대로 생성할 객체 유형입니다. |
문자열 | 기본 키 | 생성할 객체의 기본 키입니다. |
반환
유형 | 설명 |
---|---|
IRealmObjectBase | 동적으로 액세스되는 Realm 객체입니다. |
비고
Realm 인스턴스가 유형이 지정되지 않은 스키마에서 생성된 경우(예: 이전 버전의 영역에서 마이그레이션하는 경우) 반환되는 객체는 완전히 동적입니다. GetInstance(RealmConfigurationBase?) 를 호출할 때 기본값으로 형식화된 스키마에서 Realm이 생성된 경우 반환되는 객체는 사용자 정의 클래스의 인스턴스입니다.
예외
유형 | 조건 |
---|---|
RealmInvalidTransactionException | Realm 에 활성화된 쓰기 트랜잭션 (write transaction)이 없을 때 이 옵션을 호출하는 경우 |
ArgumentException |
|
찾기(문자열, ObjectId?)
PrimaryKey 속성이 있는 클래스에서 동적 사용할 객체를 빠르게 조회합니다.
선언
public IRealmObject? Find(string className, ObjectId? primaryKey)
매개변수
유형 | 이름 | 설명 |
---|---|---|
문자열 | 클래스 이름 | 동적 상황에서의 클래스 이름입니다. |
ObjectId? | 기본 키 | == 검색과 동일하게 정확히 일치해야 하는 프라이머리 키는 |
반환
유형 | 설명 |
---|---|
IRealmObject |
|
예외
유형 | 조건 |
---|---|
RealmClassLacksPrimaryKeyException | IRealmObject 클래스 T에 PrimaryKeyAttribute 가 없는 경우. |
찾기(문자열, GUID?)
PrimaryKey 속성이 있는 클래스에서 동적 사용할 객체를 빠르게 조회합니다.
선언
public IRealmObject? Find(string className, Guid? primaryKey)
매개변수
유형 | 이름 | 설명 |
---|---|---|
문자열 | 클래스 이름 | 동적 상황에서의 클래스 이름입니다. |
가이드? | 기본 키 | == 검색과 동일하게 정확히 일치해야 하는 프라이머리 키는 |
반환
유형 | 설명 |
---|---|
IRealmObject |
|
예외
유형 | 조건 |
---|---|
RealmClassLacksPrimaryKeyException | IRealmObject 클래스 T에 PrimaryKeyAttribute 가 없는 경우. |
찾기(문자열, 긴?)
PrimaryKey 속성이 있는 클래스에서 동적 사용할 객체를 빠르게 조회합니다.
선언
public IRealmObject? Find(string className, long? primaryKey)
매개변수
유형 | 이름 | 설명 |
---|---|---|
문자열 | 클래스 이름 | 동적 상황에서의 클래스 이름입니다. |
long? | 기본 키 | == 검색과 동일하게 정확히 일치해야 하는 프라이머리 키는 |
반환
유형 | 설명 |
---|---|
IRealmObject |
|
예외
유형 | 조건 |
---|---|
RealmClassLacksPrimaryKeyException | IRealmObject 클래스 T에 PrimaryKeyAttribute 가 없는 경우. |
찾기(문자열, 문자열?)
PrimaryKey 속성이 있는 클래스에서 동적 사용할 객체를 빠르게 조회합니다.
선언
public IRealmObject? Find(string className, string? primaryKey)
매개변수
유형 | 이름 | 설명 |
---|---|---|
문자열 | 클래스 이름 | 동적 상황에서의 클래스 이름입니다. |
문자열 | 기본 키 | == 검색과 동일하게 정확히 일치해야 하는 프라이머리 키는 |
반환
유형 | 설명 |
---|---|
IRealmObject |
|
예외
유형 | 조건 |
---|---|
RealmClassLacksPrimaryKeyException | IRealmObject 클래스 T에 PrimaryKeyAttribute 가 없는 경우. |
InsertEmbeddedObjectInList(객체, int)
내장된 객체를 만들고 지정된 목록의 지정된 인덱스에 삽입합니다. 이렇게 하면 새로 생성된 내장된 객체의 올바른 소유권도 할당됩니다.
선언
public IEmbeddedObject InsertEmbeddedObjectInList(object list, int index)
매개변수
유형 | 이름 | 설명 |
---|---|---|
객체 | 목록 | 객체가 삽입될 목록입니다. |
int | index | 객체가 삽입될 인덱스입니다. |
반환
유형 | 설명 |
---|---|
IEmbeddedObject | 새로 생성된 객체가 목록에 삽입된 후의 객체입니다. |
비고
포함된 객체 목록은 객체를 직접 추가할 수 없습니다. 이것이 바로 Add(T), Insert(int, T) 및 this[int] 대신 AddEmbeddedObjectToList(object), InsertEmbeddedObjectInList(object, int) 및 SetEmbeddedObjectInList(object, int) 를 사용해야 하는 이유입니다.
다음도 참조하세요.
| 이 페이지 편집 소스 보기RemoveAll(string)
Realm에서 특정 유형의 모든 객체를 제거합니다.
선언
public void RemoveAll(string className)
매개변수
유형 | 이름 | 설명 |
---|---|---|
문자열 | 클래스 이름 | 스키마에 정의된 대로 제거할 객체의 유형입니다. |
예외
유형 | 조건 |
---|---|
RealmInvalidTransactionException | Realm 에 활성화된 쓰기 트랜잭션 (write transaction)이 없을 때 이 옵션을 호출하는 경우 |
ArgumentException | 이 Realm의 스키마에 속하지 않는 |
SetEmbeddedObjectInDictionary(객체, 문자열)
포함된 객체를 생성하고 지정된 키에 대해 지정된 사전에 설정합니다. 이렇게 하면 새로 생성된 내장된 객체의 올바른 소유권도 할당됩니다.
선언
public IEmbeddedObject SetEmbeddedObjectInDictionary(object dictionary, string key)
매개변수
유형 | 이름 | 설명 |
---|---|---|
객체 | 사전 | 객체가 설정될 딕셔너리입니다. |
문자열 | 키 | 객체가 설정될 키입니다. |
반환
유형 | 설명 |
---|---|
IEmbeddedObject | 딕셔너리의 지정된 키에 할당된 후 새로 생성된 객체입니다. |
비고
내장된 객체가 포함된 사전은 소유되지 않은 내장된 객체를 생성해야 하는 경우 객체를 직접 추가할 수 없으며, 이는 불가능합니다. 이것이 바로 Add(TKey, TValue) 및 this[TKey] 대신 AddEmbeddedObjectToDictionary(object, string) 및 SetEmbeddedObjectInDictionary(object, string) 를 사용해야 하는 이유입니다.
다음도 참조하세요.
| 이 페이지 편집 소스 보기SetEmbeddedObjectInList(객체, int)
포함된 객체를 만들고 지정된 목록의 지정된 인덱스에 설정합니다. 이렇게 하면 새로 생성된 내장된 객체의 올바른 소유권도 할당됩니다.
선언
public IEmbeddedObject SetEmbeddedObjectInList(object list, int index)
매개변수
유형 | 이름 | 설명 |
---|---|---|
객체 | 목록 | 객체가 설정될 목록입니다. |
int | index | 객체가 설정될 인덱스입니다. |
반환
유형 | 설명 |
---|---|
IEmbeddedObject | 새로 생성된 객체(목록의 지정된 인덱스로 설정된 후의 객체)입니다. |
비고
포함된 객체 목록은 객체를 직접 추가할 수 없습니다. 이것이 바로 Add(T), Insert(int, T) 및 this[int] 대신 AddEmbeddedObjectToList(object), InsertEmbeddedObjectInList(object, int) 및 SetEmbeddedObjectInList(object, int) 를 사용해야 하는 이유입니다.
객체를 인덱스에 설정하면 목록에서 기존 객체가 제거되고 소유권이 해제됩니다. 소유하지 않은 내장된 객체는 자동으로 삭제되므로 트랜잭션이 커밋될 때index
에 포함된 목록의 이전 객체도 삭제됩니다.