Realm(Net Xamarin)总是返回一个新的类实例吗?

时间:2017-08-19 11:40:43

标签: .net xamarin realm

我使用嵌套模型创建了一个非常简单的项目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();
    }
}

1 个答案:

答案 0 :(得分:1)

每次访问属性时,您都会获得一个新实例。此行为是设计使然,无法阻止它。根据经验,您不应该依赖非持久性属性/字段来保留在模型中。如果您希望每次访问属性时compile 'commons-validator:commons-validator:1.4.1'字段都不更改,则应将其保留在数据库中。