0

Il existe une méthode pour définir le format dans le code première migrationComment configurer DataAnnotations pour date dans la base de données First EF 6 sur MVC5

à savoir:

.. 
[DisplayFormat(ApplyFormatInEditMode=true, DataFormatString = "{0:d}")] 
public Nullable<System.DateTime> DeliveredDate { get; set; } 
.. 

Cependant, je pouvais obtenir la même logique dans la base de données d'abord Migration, puisque chaque modification est la base de données met à jour les modèles.

Donc, ma question est: Comment définir DataAnnotations like (DisplayFormat, DataFormatString etc.) dans la première migration de base de données? Est-ce possible? Si possible, comment l'implémenter.

Répondre

2

Vous pouvez utiliser le fait que les classes d'entités générées sont partielles et associées données à travers une autre classe et MetadataTypeAttribute.

Par exemple, dans certains fichier de code non affecté par la génération de code, vous écrirait quelque chose comme ceci:

[MetadataType(typeof(YourEntityMetadata))] 
partial class YourEntity { } 

class YourEntityMetadata 
{ 
    [DisplayFormat(ApplyFormatInEditMode=true, DataFormatString = "{0:d}")] 
    public Nullable<System.DateTime> DeliveredDate { get; set; } 
} 

La classe « métadonnées » n'a pas besoin d'inclure toutes les propriétés de l'entité - seulement ceux vous voulez associer des annotations de données avec.

Référence: EF Database First with ASP.NET MVC: Enhancing Data Validation

1

Vous pouvez changer la vue propriété de modèle avec le [DisplayFormat] attribut:

[DisplayFormat(DataFormatString = "{0:dd/MM/yyyy}", 
       ApplyFormatInEditMode = true)] 
public DateTime DeliveredDate { get; set; } 

et à votre avis:

@Html.EditorFor(x => x.DeliveredDate) 
or, for displaying the value, 

@Html.DisplayFor(x => x.DeliveredDate) 

ou vous pouvez faire comme ceci:

@Html.TextBox("MyDate", Model.DeliveredDate .ToLongDateString()) 
+0

Ravikumar, je mentionné nulle part sur la migration EF. Je veux définir le format pour dataype. Comme format pour la date, le format pour la monnaie. Je peux gérer Js. Mais je suis à la recherche d'une validation côté serveur. – Aravin