Maison > développement back-end > C++ > Comment contrôler la précision et l'échelle décimales dans les migrations EF Core Code-First ?

Comment contrôler la précision et l'échelle décimales dans les migrations EF Core Code-First ?

Susan Sarandon
Libérer: 2025-01-21 23:36:11
original
727 Les gens l'ont consulté

How Do I Control Decimal Precision and Scale in EF Core Code-First Migrations?

Comprendre la précision et l'échelle décimales dans les migrations EF Core Code-First

L'approche Code-First d'Entity Framework Core nécessite une attention particulière lors du mappage des propriétés décimales aux colonnes de la base de données. Bien que le mappage par défaut soit decimal(18, 0) dans SQL Server, vous devrez souvent personnaliser la précision et l'échelle pour des besoins de données spécifiques.

Définir la précision et l'échelle

Pour contrôler la précision et l'échelle de vos colonnes décimales, utilisez la méthode HasPrecision au sein de la classe DecimalPropertyConfiguration. Cette méthode accepte deux arguments : precision (nombre total de chiffres) et scale (nombre de décimales).

Exemple illustratif :

<code class="language-csharp">public class EFDbContext : DbContext
{
    protected override void OnModelCreating(ModelBuilder modelBuilder)
    {
        modelBuilder.Entity<MyClass>().Property(e => e.MyDecimalProperty).HasPrecision(12, 10);

        base.OnModelCreating(modelBuilder);
    }
}</code>
Copier après la connexion

Dans cet extrait de code, MyDecimalProperty est configuré avec une précision de 12 et une échelle de 10, permettant un total de 12 chiffres avec 10 places après la virgule décimale.

Considérations importantes :

  • La méthode HasPrecision n'est pas prise en charge dans les anciennes versions d'EF (par exemple, EF 4.1). Pour ces versions, utilisez la méthode HasColumnType comme indiqué ci-dessous :

    <code class="language-csharp">  modelBuilder.Entity<MyClass>().Property(e => e.MyDecimalProperty).HasColumnType("decimal(12, 10)");</code>
    Copier après la connexion
  • N'oubliez pas que precision représente le nombre total de chiffres, tandis que scale fait spécifiquement référence aux chiffres qui suivent la virgule décimale.

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal