Docs 菜单
Docs 主页
/ /
支持的数据类型

RealmValue — .NET SDK

在版本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属性。

以下代码演示在继承IRealmObject的类中创建RealmValue属性,然后设置和获取该属性的值:

public partial class MyRealmValueObject : IRealmObject
{
[PrimaryKey]
[MapTo("_id")]
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类型属性。 然后,将该属性设立为列表或字典。

后退

在此页面上