7

Tengo una clase de usuario parcial generada por el registro activo Subsonic3 que he extendido con algunos métodos en una clase parcial separada.Agregar DataAnnontations a las clases parciales generadas

Me gustaría saber si es posible agregar anotaciones de datos a las propiedades de miembro en una clase parcial donde se declara en el otro Generado subsónico. Intenté esto.

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

    ... 
} 

Este ejemplo muestra el error "El miembro ya está definido".

Creo que podría haber visto un ejemplo hace un tiempo de lo que estoy tratando de hacer con Dynamic Data y Linq2Sql.

Respuesta

10

Lo que hay que hacer es crear un 'buddy class' y aplicar las anotaciones de datos a esa clase:

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

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

Esto no va a responder directamente a su pregunta, pero tenía el mismo problema, y ​​bastante que usar DataAnnotations, he estado usando el marco de FluentValidation {0} con gran éxito hasta el momento. Funciona muy bien porque proporciona muchas de las mismas funcionalidades, pero no aplica la validación mediante el uso de atributos en los miembros de la clase. La validación ocurre en una clase completamente separada que actúa en la clase que se valida (es decir, UserValidator).

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

Cuestiones relacionadas