Le DataAnnotations [Téléphone] Attribut

Ce qui est la valeur par défaut, format valide de l' [Téléphone] attribut?
Dans le tableau de données, le téléphone de la colonne est navrchar (16)
Si j'entre un numéro de téléphone comme 1112223333, j'obtiens un "champ n'est pas un numéro de téléphone valide."
Si j'entre 01112223333, je reçois "La valeur "11112223333' est pas valide."

Aussi, comment le remplacer?
Je comprends que je pourrais faire quelque chose comme ça, mais est-ce la meilleure pratique dans ce cas?

[RegularExpression(@"((\(\d{3}\) ?)|(\d{3}-))?\d{3}-\d{4}",ErrorMessage="Invalid Phone Number!")]

Liées code:

    [Required]
    [Phone]
    public string Phone { get; set; }

    <div class="editor-field">
       @Html.EditorFor(model => model.Phone)
       @Html.ValidationMessageFor(model => model.Phone)
    </div>

Mise à jour
Je pense qu'il y a une cartographie problème quand j'ai changé le téléphone de la colonne de type int à navrchar. Mise à jour le modèle n'était pas assez, donc j'ai dû changer la valeur manuellement à l'aide de la Table de Mapping.

Erreur 2019: Membre de la Cartographie spécifié n'est pas valide.
Le type 'Edm.Int32[Nullable=False,DefaultValue=]' membre 'Téléphone'
dans " type de UserDBModel.UserProfile " n'est pas compatible avec
'SqlServerCe.nvarchar[Nullable=False,DefaultValue=,MaxLength=16,Unicode=True,Ngth=False]'
de membre "Téléphone" dans le " type de UserDBModel.Magasin.UserProfile'.

C'est une bonne pratique. Si vous avez besoin d'utiliser le téléphone de validation à plusieurs reprises de créer votre propre ValidationAttribute (PhoneNumberAttribute).
Vous avez changé votre colonne dans la base de données de "nvarchar" mais gauche de la Phone propriété dans UserDBModel.UserProfile un int

OriginalL'auteur usefulBee | 2013-10-25