The requested page is not available for the requested platform. You are viewing the content for Default platform.

RuleCombinationOfPropertiesIsUniqueAttribute Class

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

Namespace: DevExpress.Persistent.Validation

Assembly: DevExpress.Persistent.Base.v19.1.dll

Declaration

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

Remarks

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 19.1\Components\eXpressApp Framework\FeatureCenter folder, by default.

Note

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.

Inheritance

Object
Attribute
RuleBaseAttribute
RuleCombinationOfPropertiesIsUniqueAttribute

Implements

DevExpress.Persistent.Validation.IRuleBaseAttribute
DevExpress.Persistent.Validation.IRuleCombinationOfPropertiesIsUniqueProperties
DevExpress.Persistent.Validation.IRuleSearchObjectProperties
See Also