Affiner la précision décimale et l'échelle dans EF Code First
Entity Framework (EF) Code First est par défaut decimal(18, 0)
pour les propriétés System.Decimal
lors du mappage à SQL Server. Cependant, vous avez souvent besoin de plus de contrôle sur la précision et l’échelle. Les anciennes méthodes impliquant une EntityPropertyConfiguration
manipulation directe sont désormais obsolètes, remplacées par une approche plus rationalisée dans EF 4.1 et versions ultérieures.
Tirer parti DecimalPropertyConfiguration.HasPrecision
La classe DecimalPropertyConfiguration
fournit la méthode HasPrecision
pour un contrôle précis. Sa syntaxe est :
<code class="language-csharp">public DecimalPropertyConfiguration HasPrecision(byte precision, byte scale)</code>
precision
: Le nombre total de chiffres (avant et après la virgule décimale).scale
: Le nombre de chiffres après la virgule décimale.Exemple pratique : réglage de la précision et de l'échelle
Dans la méthode DbContext
de votre OnModelCreating
classe, vous pouvez spécifier la précision et l'échelle :
<code class="language-csharp">public class EFDbContext : DbContext { protected override void OnModelCreating(DbModelBuilder modelBuilder) { modelBuilder.Entity<MyClass>().Property(e => e.MyDecimalProperty).HasPrecision(12, 10); base.OnModelCreating(modelBuilder); } }</code>
Ceci mappe MyDecimalProperty
(de type decimal
) dans l'entité MyClass
à une colonne SQL Server decimal(12, 10)
. Cela garantit que la base de données stocke des nombres comportant un maximum de 12 chiffres, avec jusqu'à 10 décimales.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!