使用Realm .NET SDK映射字符串数组时返回空列表或null如何解决
问题解决方法
- 版本校验
首先确认你使用的Realm .NET SDK版本 ≥ 10.18.0,低于该版本的SDK不支持基础类型(字符串、数字等)的集合映射,仅支持RealmObject/EmbeddedObject类型的集合。 - 修正模型属性写法
针对你当前的Schema,有两种合法的属性声明方式可选:
- 方式一:使用
RealmList<string>
[MapTo("hashtags")] public RealmList<string> Hashtags { get; } = new RealmList<string>();
- 方式二:使用
IList<string>
如果不希望强绑定Realm专属类型,可以选择这种写法:
[MapTo("hashtags")] // 加[Required]特性可保证属性永远返回空列表而非null,和你的Schema非必填规则匹配的话也可以不加 [Required] public IList<string> Hashtags { get; set; }
如果后续你把Schema中hashtags加入required必填列表,那么属性上必须添加[Required]特性保证映射规则匹配。
3. 原有写法问题说明
- 你之前的
RealmList<string>属性仅声明了get访问器,未进行初始化,Realm无法完成托管实例的注入,因此始终返回空列表 - 改用
IList<string>时未声明set访问器,同时没有加Required特性,当后端未返回字段时就会得到null值
内容的提问来源于stack exchange,提问作者Spaeda
相关产品推荐
相关产品推荐

