Konfigurieren der Genauigkeit und Skalierung dezimaler Datentypen in EF Code First
In EF Code First werden Eigenschaften vom Typ System.Decimal standardmäßig Spalten vom Typ decimal(18, 0) in der Datenbank zugeordnet. Um die Datenintegrität aufrechtzuerhalten und die Genauigkeit numerischer Operationen sicherzustellen, ist es wichtig, die Genauigkeit (Gesamtzahl der gespeicherten Ziffern) und den Maßstab (Anzahl der gespeicherten Dezimalstellen) dieser Spalten anzupassen.
Dave Van den Eyndes ursprüngliche Antwort schlug vor, dass in EF 4.0 und früher die empfohlene Methode zum Anpassen der Präzision darin bestand, über die Eigenschaften zu iterieren und modelBuilder.Entity().Property().HasPrecision() mit modelBuilder() zu verwenden. Property().HasScale(). Allerdings ist dieser Ansatz in neueren EF-Versionen veraltet.
Ab EF 4.1 bietet die DecimalPropertyConfiguration.HasPrecision-Methode eine einfachere und effizientere Lösung. Es akzeptiert zwei Parameter:
Die Syntax zum Festlegen von Präzision und Skalierung in EF Code First lautet wie folgt:
<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>
Mit diesem Ansatz können wir die Genauigkeit und Skalierung von Dezimalattributen explizit definieren und so sicherstellen, dass die Datenbankspalte das erforderliche Datenformat und den erforderlichen Datenbereich genau darstellt. Dies ist besonders wichtig, wenn es um Finanz- oder andere sensible Daten geht, die eine hohe Genauigkeit erfordern.
Das obige ist der detaillierte Inhalt vonWie konfiguriere ich zuerst Präzision und Skalierung für dezimale Datentypen im EF-Code?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!