Gérer la précision et l'échelle décimales avec EF Code First
Entity Framework (EF) Code First mappe par défaut les propriétés System.Decimal
aux colonnes decimal(18, 0)
de SQL Server. Cette valeur par défaut n'est pas toujours idéale, en particulier lorsque votre application nécessite une plus grande précision ou un plus grand nombre de décimales. Heureusement, l'API EF propose des méthodes simples pour personnaliser ce mappage.
Configuration de la précision et de l'échelle
Avant EF 4.1, les développeurs utilisaient généralement la méthode HasColumnType
pour ajuster les propriétés des colonnes dans une boucle d'itération de modèle. Par exemple :
<code class="language-csharp">foreach (var property in modelBuilder.Properties.Where(p => p.ClrType == typeof(decimal))) { property.HasColumnType($"decimal({property.Precision}, {property.Scale})"); }</code>
Cependant, EF 4.1 et les versions ultérieures proposent une approche plus rationalisée en utilisant la méthode HasPrecision
. Cette méthode, qui fait partie du DecimalPropertyConfiguration
, définit directement la précision et l'échelle.
Voici comment utiliser HasPrecision
:
<code class="language-csharp">modelBuilder.Entity<MyClass>().Property(o => o.MyDecimalProperty).HasPrecision(12, 10);</code>
Ce code crée une colonne SQL Server avec une précision de 12 et une échelle de 10 pour la propriété MyDecimalProperty
au sein de l'entité MyClass
.
Cette méthode garantit une gestion précise et fiable des données dans vos applications EF Code First en permettant un contrôle précis du stockage décimal dans la base de données.
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!