A newer version of this page is available. Switch to the current version.

RuleCombinationOfPropertiesIsUniqueAttribute Class

Defines a validation rule that demands the target properties' values combination be unique.

Namespace: DevExpress.Persistent.Validation

Assembly: DevExpress.Persistent.Base.v18.2.dll


[AttributeUsage(AttributeTargets.Class | AttributeTargets.Property | AttributeTargets.Interface, AllowMultiple = true)]
public class RuleCombinationOfPropertiesIsUniqueAttribute :
<AttributeUsage(AttributeTargets.Class Or AttributeTargets.Property Or AttributeTargets.Interface, AllowMultiple:=True)>
Public Class RuleCombinationOfPropertiesIsUniqueAttribute
    Inherits RuleBaseAttribute
    Implements IRuleCombinationOfPropertiesIsUniqueProperties,


Apply this attribute to a business class to define a validation rule that will check whether a set of the class' properties values is unique. Use the CriteriaEvaluationBehavior parameter, to specify whether to look for objects that are currently retrieved from the database, in addition to objects in the database itself. In addition, use the common parameters that are inherited from the RuleBaseAttribute class. The properties whose combination must be unique are specified by the attribute constructors' targetProperties parameter. This string parameter holds a list of property names separated by the comma, semicolon or a whitespace characters.

[RuleCombinationOfPropertiesIsUnique("SampleRule", DefaultContexts.Save, "Description, Id")]
public class SampleClass : BaseObject {
    private int id;
    private string description;

    public SampleClass(Session session) : base(session) { }

    public int Id {
        get { return id; }
        set { SetPropertyValue("Id", ref id, value); }
    public string Description {
        get { return description; }
        set { SetPropertyValue("Description", ref description, value); }

The rule generated by the RuleCombinationOfPropertiesIsUniqueAttribute will be loaded to the Application Model's IModelValidationRules node. So, you can customize this rule via the Model Editor. In addition, you can create new rules in the Model Editor as well. This is helpful when you need to add a rule to a class provided by a third party library. For details, refer to the Implement Property Value Validation in the Application Model topic.

You can see examples of using the RuleCombinationOfPropertiesIsUniqueAttribute and other validation attributes in the Validation section of the FeatureCenter demo. This demo is located in the %PUBLIC%\Documents\DevExpress Demos 18.2\Components\eXpressApp Framework\FeatureCenter folder, by default.


You can apply RuleUniqueValue, RuleObjectExists, RuleIsReferenced, and RuleCombinationOfPropertiesIsUnique rules to persistent business objects only because they search for objects within the application database. If the rule is applied to a base class that has descendants, the condition is tested against objects of all derived types.


See Also