Pergunta

Eu tenho um Subsonic3 Active Record gerado classe User parcial que eu tenho estendido com alguns métodos em uma classe parcial separado.

Gostaria de saber se é possível adicionar anotações de dados para as propriedades do membro em uma classe parcial onde é declarada por outro Subsonic Gerado que eu tentei isso.

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

    ...
}

Que exemplos dá o erro "Membro já está definido".

Eu acho que eu poderia ter visto um exemplo de um tempo atrás do que eu estou tentando fazer com dados dinâmicos e Linq2Sql.

Foi útil?

Solução

O que você precisa fazer é criar um ' class amigo ' e aplicar as Anotações de dados para essa classe:

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

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

Outras dicas

Você deve criar uma classe amigo como explicado aqui por Scott Guthrie http: // weblogs .asp.net / ScottGu / Arquivo / 2010/01/15 / asp-net-mvc-2-model-validation.aspx

Isso não vai responder diretamente sua pergunta, mas eu tive o mesmo problema, e ao invés de usar DataAnnotations, eu tenho usado o quadro FluentValidation {0} com grande sucesso até agora. Ele funciona muito bem porque ele fornece grande parte da mesma funcionalidade, mas não se aplica a validação usando atributos de membros da classe. Validação acontece em uma classe completamente separado que age sobre a classe que está sendo validado (ou seja UserValidator).

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

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top