Используя NRules, я хочу иметь возможность создавать сеанс, вставлять факты, запускать и завершать его, и пока сеанс все еще жив в памяти (статическая переменная), я хочу вызвать обновление факта.
private static ISession session; //this is instantiated when bulding the rules dinamically
public void RulesTest(RulesTest command)
{
//entities holds ALL facts ever inserted in session
var entities = _session.Query<Entity>();
_session.Insert(command.Fact);
Rule rule = GetRule();
_session.Insert(rule.Condition);
_session.Insert(rule.Action);
_session.Fire();
}
Это запускает правило и делает все правильно. То, что я хочу сделать сейчас, это добавить возможность обновлять ТОТ ЖЕ ФАКТ, который был запущен один раз, но теперь с новым значением... это означает, что я хочу обновить факт и снова выполнить условия. .
Выполнение _session.Update(command.Fact)
после обновления моего факта дает мне сообщение об ошибке: «Факт для обновления не существует», хотя я могу видеть ВСЕ факты, все еще находящиеся в сеансе.
Любая идея приветствуется. Спасибо.