Configuration de la précision et de l'échelle des types de données décimales dans EF Code First
Dans EF Code First, les propriétés de type System.Decimal sont mappées par défaut aux colonnes de type decimal(18, 0) dans la base de données. Pour maintenir l'intégrité des données et garantir l'exactitude des opérations numériques, il est essentiel de personnaliser la précision (nombre total de chiffres stockés) et l'échelle (nombre de décimales stockées) de ces colonnes.
La réponse originale de Dave Van den Eynde suggérait que dans EF 4.0 et versions antérieures, la méthode recommandée pour ajuster la précision était de parcourir les propriétés et d'utiliser modelBuilder.Entity().Property().HasPrecision() avec modelBuilder(). Propriété().HasScale(). Cependant, cette approche est obsolète dans les versions récentes d’EF.
À partir de EF 4.1, la méthode DecimalPropertyConfiguration.HasPrecision fournit une solution plus simple et plus efficace. Il accepte deux paramètres :
La syntaxe de définition de la précision et de l'échelle dans EF Code First est la suivante :
<code class="language-csharp">public class EFDbContext : DbContext { protected override void OnModelCreating(System.Data.Entity.DbModelBuilder modelBuilder) { modelBuilder.Entity<MyClass>().Property(m => m.MyProperty).HasPrecision(12, 10); base.OnModelCreating(modelBuilder); } }</code>
Avec cette approche, nous pouvons définir explicitement la précision et l'échelle des attributs décimaux, garantissant ainsi que la colonne de la base de données représente avec précision le format et la plage de données requis. Ceci est particulièrement important lorsqu’il s’agit de données financières ou autres données sensibles qui nécessitent une grande précision.
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!