我的应用,付费和免费用户有两种类型的用户。 对于免费用户,我不提供他们在我的应用程序中创建的任何数据备份,因此这个领域数据库实例(比如db1)不会同步。 对于付费用户,我正在证明备份,在这里我使用的是同步域db(比如db2)。
这里的条件是当用户更喜欢付费用户时,如何同步先前离线领域db中可用的数据。如何将此db1合并到db2。
另外,我在Db(视频和图像)中写了一大堆数据。我更喜欢异步写入和读取。 (我试过writeAsync方法,它给出了异常) 任何提示都将不胜感激。
下面的代码是抛出说从错误的线程访问域。
public async Task InsertItemInDB(Post model)
{
try
{
//realm.Write(() =>
// {
// realm.Add(model);
// });
var realm = Realm.GetInstance(Config);
await realm.WriteAsync( (Realm obj) => {
realm.Add(model, true);
});
}
catch(Exception ex){
Console.WriteLine("problem writing to DB" + ex);
}
}
答案 0 :(得分:2)
当你启动WriteAsync
块时,你必须使用传递给lamb块的Realm
实例,否则你将得到一个无效的线程异常。
您的代码应为:
await realm.WriteAsync( (Realm obj) => {
// Use the Realm instance that was passed in, i.e. `Realm obj`
obj.Add(model, true);
});