使用 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();
}
这会触发规则并正确执行所有操作。我现在想要发生的是添加能够更新曾经触发过的 SAME FACT 的能力,但现在有了一个新的值......意思是,我想更新这个事实,并让它再次通过条件.
更新我的事实后执行_session.Update(command.Fact)
操作会给我一条错误消息:“更新的事实不存在”,即使我可以看到所有事实仍在会话中。
欢迎任何想法。谢谢你。