Realm .NET - 如何复制/分离对象

时间:2017-12-18 19:11:34

标签: c# xamarin realm

我在Xamarin中使用Realm for .NET遇到了问题。

我可以正常添加,更新和删除对象,但同样java,Realm for .NET也没有copyFromRealm对象。

我的方法只是打开领域,选择数据,我需要在数据层外部处理这个对象(我使用类查询数据并在另一层验证它)。

但即使使用DeepCloner(nuget),Realm也会抛出一个异常,指责该领域已关闭,但我正在使用.NET的using()指令关闭它。

我可以在关闭并操纵该对象之前从领域复制一个对象。我只需要读取对象中的数据,而不是再次将它写入Realm。

using(var realm = Realm.GetInstance(config))
{
    var data = realm.All<DadosUsuario>().FirstOrDefault().ShallowCopy();
}

2 个答案:

答案 0 :(得分:0)

是的,没有理由不能做到这一点。 DeepClone失败的可能原因是它克隆了基础RealmObject类的属性(最值得注意的是Realm)。相反,您可以自己编写克隆方法,也可以使用AutoMapper,它应该忽略开箱即用的只读属性,但需要更多的配置。

答案 1 :(得分:0)

对于正在寻找实现此目标的方法的其他任何人,here中描述的第一种方法对我们来说效果很好。