.net Realm(netxamarin)是否总是返回一个新的类实例?
我用嵌套模型User->Coach->Lesson创建了一个非常简单的项目 当我尝试从path User.CurrentCoach.CurrentLesson获取课程实例时,我总是会得到类Lesson的一个新实例 例如:.net Realm(netxamarin)是否总是返回一个新的类实例?,.net,xamarin,realm,.net,Xamarin,Realm,我用嵌套模型User->Coach->Lesson创建了一个非常简单的项目 当我尝试从path User.CurrentCoach.CurrentLesson获取课程实例时,我总是会得到类Lesson的一个新实例 例如: var obj1 = App.CurrentUser.CurrentCoach.CurrentLesson; App.Realm.Write(() => App.CurrentUser.CurrentCoach.CurrentLesson.Name = "Second
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();
}
}
每次访问属性时,都会得到一个新实例。这种行为是故意的,没有办法阻止。根据经验,您不应该依赖于要保留在模型中的非持久化属性/字段。如果希望
guid
字段在每次访问属性时都不会更改,则应将其保留在数据库中。App.CurrentUser.CurrentCoach.CurrentLesson背后的代码是什么?