Adding DataAnnontations to Generated Partial Classes

蹲街弑〆低调 提交于 2019-12-17 18:24:41

问题


I have a Subsonic3 Active Record generated partial User class which I've extended on with some methods in a separate partial class.

I would like to know if it is possible to add Data Annotations to the member properties on one partial class where it's declared on the other Subsonic Generated one I tried this.

public partial class User
{
    [DataType(DataType.EmailAddress, ErrorMessage = "Please enter an email address")]
    public string Email { get; set; }

    ...
}

That examples gives the "Member is already defined" error.

I think I might have seen an example a while ago of what I'm trying to do with Dynamic Data and Linq2Sql.


回答1:


What you will need to do is create a 'buddy class' and apply the Data Annotations to that class:

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

public class UserValidation
{
  [DataType(DataType.EmailAddress, ErrorMessage = "Please enter an email address")]
  public string Email { get; set; }
}



回答2:


You should create a buddy class as explained here by Scott Guthrie http://weblogs.asp.net/scottgu/archive/2010/01/15/asp-net-mvc-2-model-validation.aspx




回答3:


This won't directly answer your question, but I had the same problem, and rather than using DataAnnotations, I've been using the FluentValidation framework {0} with great success so far. It works nicely because it provides much of the same functionality, but doesn't apply validation by using attributes on members of the class. Validation happens in a completely separate class that acts on the class being validated (i.e. UserValidator).

{0}: http://fluentvalidation.codeplex.com/



来源:https://stackoverflow.com/questions/1232497/adding-dataannontations-to-generated-partial-classes

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!