How to: Validate Data

[This topic is pre-release documentation and is subject to change in future releases. Blank topics are included as placeholders.]

This topic describes how you add validation attributes to properties and entities to enforce validation rules. WCF RIA Services provides several validation attributes that perform common validation checks, and also provides the CustomValidationAttribute attribute to enable you to specify customized validation checks.

The following default validation attributes are provided by RIA Services:

You add the validation attributes to entities in the server project and those validation attribute are propagated to their generated client entity representations. At runtime, the validation rules are applied to data from the user. You must add metadata classes to add validation attributes. For more information on how to do this, see How to: Add Metadata Classes.

This topic describes how to add default and custom validation attributes.

To add validation attributes provided by RIA Services

  1. Add a metadata class for the entity class, as described in How to: Add Metadata Classes.

  2. On the properties or entity that you want to validate, add the validation attributes that perform the validation.

    The following example shows the RequiredAttribute and StringLengthAttribute attributes applied to a property named AddressLine1.

  3. Build (Ctrl+Shift+B) the solution.

  4. In the Silverlight application, open the generated code file in the Generated_Code folder, and notice how the validation attributes have been applied in the client code.

To add a Custom Validation attribute

  1. Add a metadata class for the entity class, as described in How to: Add Metadata Classes.

  2. Add a shared code file by using the *.shared.cs or *.shared.vb naming pattern.

    The code file will contain the custom validation object.

  3. Add a method that determines whether the data is valid.

    The method must be public and static (or Public and Shared in Visual Basic). It must return a ValidationResult to indicate the result of the validation check. When you define the customized validation class, you must provide at least some code other than auto-implemented properties for the class to be correctly generated in the client project.

    The following example shows a class named ProductValidator with a method named IsProductValid that validates a Product entity. When the data is not valid, you return the error message and the name of the property that failed validation.

  4. On the entity or property that you want to validate, add the CustomValidationAttribute attribute and pass the type of the validation object and the name of the method that performs the validation.

    The following example shows the CustomValidationAttribute attribute applied to an entity. The validation object type is ProductValidator and the method is IsProductValid.

  5. Build (Ctrl+Shift+B) the solution.

  6. In the Silverlight application, open the Generated_Code folder. Notice the shared code file exists in the folder and how the CustomValidationAttribute is applied to the entity.

Show: