버전 12.2.0에서 변경됨: RealmValue 는 혼합 데이터의 목록과 사전을 보유할 수 있습니다.
RealmValue 데이터 유형 은 혼합된 데이터 유형 이며 내장된 객체 나 설정하다 을 제외한 다른 모든 유효한 Realm 데이터 유형 을 나타낼 수 있습니다. RealmValue 유형의 컬렉션(목록, 세트 및 사전)을 생성할 수 있습니다.
// CS0029 - Cannot implicitly convert type: RealmValue myList = new List<Inventory>(); // These are valid uses of RealmValue: var rvList = new List<RealmValue>(); var rvDict = new Dictionary<string, RealmValue>();
참고
null 허용 RealmValue 은(는) 만들 수 없습니다. 그러나 RealmValue 속성에 null 값이 포함되도록 하려면 특수 RealmValue.Null 속성을 사용할 수 있습니다.
RealmValue 속성 만들기
다음 코드는 IRealmObject 에서 상속되는 클래스에 RealmValue 속성을 만든 다음 해당 속성의 값을 설정하고 가져오는 방법을 보여 줍니다.
public partial class MyRealmValueObject : IRealmObject { [] [] public Guid Id { get; set; } public RealmValue MyValue { get; set; } // A nullable RealmValue property is *not supported* // public RealmValue? NullableRealmValueNotAllowed { get; set; } private void TestRealmValue() { var obj = new MyRealmValueObject(); // set the value to null: obj.MyValue = RealmValue.Null; // or an int... obj.MyValue = 1; // or a string... obj.MyValue = "abc"; // Use RealmValueType to check the type: if (obj.MyValue.Type == RealmValueType.String) { var myString = obj.MyValue.AsString(); } }
혼합 컬렉션
버전 12.2.0 이상에서 RealmValue 데이터 유형 은 RealmValue 요소의 컬렉션(세트는 제외 )( 설정하다 은 제외)을 보유할 수 있습니다. 혼합 컬렉션을 사용하여 구조화되지 않은 데이터 또는 가변 데이터를 모델링할 수 있습니다. 자세한 내용은 구조화되지 않은 데이터 정의를 참조하세요.
혼합 컬렉션을 최대 100 수준까지 중첩할 수 있습니다.
일반 컬렉션 과 마찬가지로 혼합 컬렉션 속성을 쿼리 하고 변경 사항에 대한 리스너를 등록 할 수 있습니다.
개별 혼합 컬렉션 요소를 찾고 업데이트 할 수 있습니다.
혼합 컬렉션에는 세트 또는 포함된 객체를 저장 수 없습니다 .
혼합 컬렉션을 사용하려면 데이터 모델 에서 RealmValue 유형 속성 을 정의합니다. 그런 다음 속성 을 목록 또는 사전으로 설정하다 합니다.