我使用嵌套模型创建了一个非常简单的项目User-> Coach-> Lesson 当我尝试从路径User.CurrentCoach.CurrentLesson获取Lesson实例时,我总是得到一个类Lesson的新实例。
例如:
var obj1 = App.CurrentUser.CurrentCoach.CurrentLesson;
App.Realm.Write(() => App.CurrentUser.CurrentCoach.CurrentLesson.Name = "Second");
var obj2 = App.CurrentUser.CurrentCoach.CurrentLesson;
这里的obj1 guid和obj2 guid不一样。 Realm总是返回一个新实例吗?以及如何防止这种情况?
模特:
public class User : RealmObject
{
public int Id { get; set; }
public string Name { get; set; }
public Coach CurrentCoach { get; set; }
}
public class Coach : RealmObject
{
public int Id { get; set; }
public string Name { get; set; }
public Lesson CurrentLesson { get; set; }
}
public class Lesson : RealmObject
{
public int Id { get; set; }
public string Name { get; set; }
public Guid guid;
public Lesson()
{
guid = Guid.NewGuid();
}
}
答案 0 :(得分:1)
每次访问属性时,您都会获得一个新实例。此行为是设计使然,无法阻止它。根据经验,您不应该依赖非持久性属性/字段来保留在模型中。如果您希望每次访问属性时compile 'commons-validator:commons-validator:1.4.1'
字段都不更改,则应将其保留在数据库中。