views:

251

answers:

1

Currently I have a DataModel object which contains my linq to sql classes(a dmbl file). Currently I use a partial class to validate the incoming input. For example

public partial class User : IEntity
{

    public NameValueCollection CheckModel()
    {
        return GetRuleViolations();
    }

    /// <summary>
    /// Method validates incoming data, by given rules in the if statement.
    /// </summary>
    /// <returns>NameValueCollection</returns>
    private NameValueCollection GetRuleViolations()
    {
        NameValueCollection errors = new NameValueCollection();
        if (string.IsNullOrEmpty(Username))
            errors.Add("Username", "A username is required");
        // and so on
        return errors;
    }

}

Now what I want to try to do is add validation attributes to the fields. For example I want to try to add the required attribute to the field Username instead/in addtion of using the validation I currently have. My question is how can I achieve this because the dmbl file is auto generated. Or maybe it is not possible and should I use a different approach?

+2  A: 

You should read about Metadata classes. This is example blog entry about it.

Adding Required atrribute to User class will be something like:

[MetadataType(typeof(UserMetadata))]
public partial class User
{
}

public class UserMetadata
{
    [Required]
    public string Username { get; set; }
}
LukLed
Okay I'll look into that thanks
Chino
You might also find the following links interesting: http://weblogs.asp.net/scottgu/archive/2010/01/15/asp-net-mvc-2-model-validation.aspxandhttp://msdn.microsoft.com/en-us/library/ee256141%28VS.100%29.aspxDataAnnotations is the keyword in this situations. ASP.Net MVC 2 even supports client side validation for this kind of validations.
Rody van Sambeek