境界很多查询不住

时间:2018-01-24 16:38:18

标签: c# .net xamarin.forms realm

我有两个模型Parent和Child(一对多),Parent包含IList Children。

在我的viewmodel中,我有一个绑定到属性ChildList的ListView。

ChildList = _dataService.Realm.All<Parent>().First(d => d.ParentId == "MyParentIdentifier").Children;

将导致实时查询(如果我向IList添加或删除子项,它将反映在UI中)。

ChildList = _dataService.Realm.All<Parent>().First(d => d.ParentId == "MyParentIdentifier").Children.Where(d => d.ChildName.StartsWith("A"));

不会导致实时查询。用户界面只会在关闭并重新打开页面后更新。

如何从此设置创建实时查询?我还尝试在Child模型中添加一个反向链接属性,并尝试添加一个查询:

ChildList = _dataService.Realm.All<Child>().Where(d => d.Parent.ParentId == "MyParentIdentifier");

但这会导致崩溃并出现错误:

  

System.NotSupportedException:Equal运算符的左侧   必须是可以直接访问Realm中的持久属性。无法   进程'd.Parent.ParentId'。

1 个答案:

答案 0 :(得分:0)

Realm .NET目前不支持遍历属性(d.Parent.ParentId),但它支持对象比较:

var parent = _dataService.Realm.Find<Parent>("MyParentIdentifier");
ChildList = _dataService.Realm.All<Child>().Where(c => c.Parent == parent);