如何在运行时NRules使用静态ISession规则时更新事实

时间:2015-07-16 18:23:10

标签: c# nrules

使用NRules,我希望能够创建一个会话,插入事实,让它激活并完成,并且当会话在内存中仍然存活(静态变量)时,我想调用事实的更新。

_session.Update(command.Fact)

这会触发规则并正确地完成所有事情。我现在要发生的是添加能够更新曾被触发一次的SAME FACT的能力,但是现在有一个新的值...意思是,我想更新这个事实,让它再次运行条件

在更新我的事实后执行{{1}}会给我一条错误消息:“即使我仍然可以看到所有事实仍然在会话中,但”更新的事实并不存在“。

欢迎任何想法。谢谢。

1 个答案:

答案 0 :(得分:0)

如果有其他人遇到此问题,我想出了如何做到这一点。保留ISession(以上述方式),使用_session.Query<Facts>()来检查您已有的内容。操纵您的代码以对此对象进行更新。之后打电话

_session.TryUpdate(Fact);
_session.Fire();

它有效:)