В rx, как вы справляетесь с необходимостью повторного использования экземпляра объекта за один шаг на следующем шаге? Например, мне нужно получить контекст в ORM, чтобы затем действовать. Async / Await находится в синтаксисе ниже:
public async Task<IList<string>> Delete(IList<string> ids)
{
var context = await _contextFactory.CreateContext();
context.Set<T>().RemoveRange(
context.Set<T>().Where(item => ids.Contains(item.Id)));
return ids;
}
Наблюдаемая версия -
public IObservable<string> DeleteObservable(IList<string> ids)
{
return ids.ToObservable()
.Select(i =>
{
var context = await _contextFactory.CreateContext();
context.Set<T>().RemoveRange(
context.Set<T>().Where(item => item.Id == id));
return id;
});
}
Однако я не хочу создавать новый контекст каждый раз, когда удаляю элемент. Я хочу создать контекст, а затем повторно использовать его в выборе. Как мне это сделать?
Да, в этом примере было бы лучше также буферизовать и отправить идентификаторы вместе, но это был только пример для моего вопроса. Я надеюсь, что эта часть не отвлекает.