The requested page is not available for the requested platform. You are viewing the content for .NET Framework 4.5.2+ platform.
.NET Framework 4.5.2+
.NET Framework 4.5.2+
.NET Standard 2.0+

XPBaseObject.EvaluateAlias(String) Method

Evaluates an expression specified by the PersistentAliasAttribute attribute for the specified property.

Namespace: DevExpress.Xpo

Assembly: DevExpress.Xpo.v19.2.dll

Declaration

public object EvaluateAlias(
    string memberName
)
Public Function EvaluateAlias(
    memberName As String
) As Object
public object EvaluateAlias(
    string memberName
)
Public Function EvaluateAlias(
    memberName As String
) As Object

Parameters

Name Type Description
memberName String

A string that specifies the name of the property that is declared with the PersistentAliasAttribute attribute.

Parameters

Name Type Description
memberName String

A string that specifies the name of the property that is declared with the PersistentAliasAttribute attribute.

Returns

Type Description
Object

A value evaluated.

Returns

Type Description
Object

A value evaluated.

Remarks

The PersistentAliasAttribute attribute indicates that a property is not persistent and it's value is calculated based upon the values of a specific persistent field(s). A parameter of this attribute can specify an expression and the result of this expression can represent the property's value.

Use the EvaluateAlias method to evaluate an expression specified by the PersistentAliasAttribute attribute. For instance, it can be used in a property's implementation as shown in the example below.

Examples

The following code shows how to define a property as non-persistent and calculate its value based upon the values of specific persistent fields. The ExtendedPrice property is marked as a non-persistent, using the PersistentAliasAttribute attribute. The expression to evaluate the property's value is specified as the attribute's parameter. In addition, the property's getter evaluates this expression using the XPBaseObject.EvaluateAlias method.

using DevExpress.Xpo;

public class Order : XPObject {
   public Order() {}
   public decimal UnitPrice {
       get { return fUnitPrice; }
       set { SetPropertyValue(nameof(UnitPrice), ref fUnitPrice, value); }
   }
   decimal fUnitPrice;

   public int Qty {
       get { return fQty; }
       set { SetPropertyValue(nameof(Qty), ref fQty, value); }
   }
   int fQty;

   public decimal Discount {
       get { return fDiscount; }
       set { SetPropertyValue(nameof(Discount), ref fDiscount, value); }
   }
   decimal fDiscount;


   [PersistentAlias("UnitPrice*Qty*(1-Discount)")]
   public decimal ExtendedPrice {
      get { return Convert.ToDecimal(EvaluateAlias(nameof(ExtendedPrice))); }
   }
}
See Also