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 TypFunctionOperatorType.CustomNonDeterministic
sein. Dies kann über die HilfsmethodeCriteriaOperatorHelper.MakeNonDeterministic
in der Implementierung vonGetCriteria
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.