Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Calculated properties determine their value from an Expressions or a lambda.

Calculated properties

An application can add calculated properties to a class or layout. If you're not already familiar with expressions, please see the Metadata Expressions for more information.

Use the Berechnete Eigenschaften ermitteln ihren Wert anhand von Expressions oder Code.

Eine Applikation kann berechnete Eigenschaften direkt der Klasse hinzufügen. Damit stehen diese zur Verwendung in Layouts zur Verfügung.

Zum hinzufügen kann die Methode ClassBuilder.Add.CalculatedProperty(...) or one of the overloads to create a new calculated property.See Metadata Delegate Expressions for many examples of creating calculated properties verwendet werden.

In der Dokumentation zu Delegate Expressions finden sich weitere Beispiele.

Value-

...

This setting applies to all properties (persistent and calculated) but it is especially useful for calculated properties.

An application can indicate when Quino should recalculate the value for a property.

  • Default: For persistent properties, the default is Cached; for calculated properties, it's Volatile.

  • Cached: The value is cached on first retrieval. It is only refreshed when the object is reloaded.

  • Volatile: The value is recalculated on each retrieval.

If an application has calculated properties that are expensive to calculate but whose value doesn't often change, it can change the value-generation frequency to Cached in order to speed up display in the UI or reports.

A product can put as much logic/work as it needs into a calculated property. In the next case, we use the ValueGenerationFrequency to cache the value.

...

API

Methode

Beschreibung

Value<Person, string>((person) => "Statischer Wert")

Berechnet einen Wert anhand des Objektes. Die Funktion wird erneut aufgerufen beim Zugriff auf die Eigenschaft.

Value<Person, PersonService, string>((service, person) => service.CalculateValue(person))

Berechnet den Wert der Property anhand eines Services.

Value<PersonService>((service) => service.CalculateValue)

Berechnet den Wert direkt über den mitgegebenen Delegate. Die Signatur des Delegate muss als ersten Parameter ein IDataObject oder eine abgeleitete Variante übernehmen.

Da die Werte bei jedem Zugriff neu berechnet werden sollte die Berechnung keine zu zeitintensiven Operationen anstossen.