我有两个模型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'。
答案 0 :(得分:0)
Realm .NET目前不支持遍历属性(d.Parent.ParentId
),但它支持对象比较:
var parent = _dataService.Realm.Find<Parent>("MyParentIdentifier");
ChildList = _dataService.Realm.All<Child>().Where(c => c.Parent == parent);