首页 > 解决方案 > 使用来自两个 IObservableCache 的元组键创建单个 ObservableCache

问题描述

我有两个 IObservableCache,每个都有独立的键。我正在尝试连接它们,以便添加/删除的任何键都以多对多的方式组合。生成的缓存将使用由来自第一个和第二个输入缓存的键组成的值元组进行键控。在我的内部转换中,我使用每个键创建一个新对象,并公开值元组,该值元组可用作结果缓存的键。

我尝试了几种不同的方法,但似乎都没有奏效。(创建了初始缓存,但对输入缓存的更新似乎不会刷新输出缓存)这是一次尝试的示例:

var items = inputANames.Connect().Transform(a =>
                inputBNames.Connect().Transform(b =>
                {
                    var val = new SomeObject(a, b);
                    
                    Debug.WriteLine($"Item added: {val.KeyTuple}");

                    return val;
                }, true).AsObservableCache(), true).RemoveKey().TransformMany(x => x.Items).AutoRefresh();

...

_inputSubscription = items.AddKey(x => x.KeyTuple).PopulateInto(_myCombinedCache);

我尝试过使用 SQL 风格的连接扩展方法,但我认为这不会起作用,因为它需要匹配输入之间的键。

标签: c#reactiveuidynamic-data

解决方案


推荐阅读