【发布时间】:2017-11-09 07:25:17
【问题描述】:
我正在更新一个对象,然后通过Backlink 访问它。它还没有奏效。
class Person : RealmObject
{
[PrimaryKey]
public int Id { get; set; }
public string Name { get; set; }
public IList<Dog> Dogs { get; }
}
class Dog : RealmObject
{
[PrimaryKey]
public int Id { get; set; }
[Ignored]
public Person Person
{
get
{
if (_person == null)
_person = Persons.First();
return _person;
}
}
[Backlink(nameof(Person.Dogs))]
public IQueryable<Person> Persons { get; }
}
添加:
var dog = new Dog () {Id = 1};
var person1 = new Person () {Id = 1, Name = "Person1"};
person1.Dogs.Add(dog);
realm.Write(() => realm.Add(person1));
更新:
var person11 = new Person() {Id = 1, Name = "Person11"};
realm.Write(() => realm.Add(person11, true));
阅读:
var readPerson11 = realm.All<Dog>.First().Person;
Person 属性出现异常。
未处理的异常:
System.InvalidOperationException:序列不包含匹配元素。
(如果readPerson11 被读取而不更新,那么我会正确地取回person11。)
我在更新之后和阅读 Person 之前尝试过 realm.Refresh()。
还尝试了GetBacklinks<Person>(nameof(Person.Dogs)),但没有结果。
我们将不胜感激。
【问题讨论】: