Wenn das Ergebnis einer eigenen Formel nicht deterministisch ist, also nicht ausschließlich von den Funktionsargumenten abhängt, weil es z.B. den aktuellen Benutzer oder dessen Sprache verwendet, müssen besondere Maßnahmen ergriffen werden.

  • Falls nicht ausschließlich ICustomFunctionOperatorConvertibleToExpression verwendet wird, muss der Funktionsaufruf vom Typ FunctionOperatorType.CustomNonDeterministic sein. Dies kann über die Hilfsmethode CriteriaOperatorHelper.MakeNonDeterministic in der Implementierung von GetCriteria sichergestellt werden. ICustomFunctionOperatorConvertibleToExpression ist dadurch faktisch für solche Funktionen obligatorisch.
  • Falls nicht-deterministische Operanden (Parameter) in dem gelieferten Criteria enthalten sind, müssen diese über die Klasse ComputedOperandValue gebunden werden. Diese stellt sicher, dass der Wert bei jeder Ausführung neu berechnet wird.