Feinabstimmung der Dezimalgenauigkeit und -skalierung im EF-Code zuerst
Entity Framework (EF) Code First verwendet bei der Zuordnung zu SQL Server standardmäßig decimal(18, 0)
für System.Decimal
-Eigenschaften. Allerdings benötigen Sie oft mehr Kontrolle über Präzision und Skalierung. Ältere Methoden mit direkter EntityPropertyConfiguration
Manipulation sind mittlerweile veraltet und werden durch einen optimierten Ansatz in EF 4.1 und höher ersetzt.
Hebelwirkung DecimalPropertyConfiguration.HasPrecision
Die DecimalPropertyConfiguration
-Klasse stellt die HasPrecision
-Methode zur präzisen Steuerung bereit. Seine Syntax ist:
<code class="language-csharp">public DecimalPropertyConfiguration HasPrecision(byte precision, byte scale)</code>
precision
: Die Gesamtzahl der Ziffern (vor und nach dem Dezimalpunkt).scale
: Die Anzahl der Nachkommastellen.Praxisbeispiel: Präzision und Maßstab einstellen
Innerhalb der DbContext
-Methode Ihrer OnModelCreating
-Klasse können Sie Präzision und Skalierung angeben:
<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>
Dies ordnet MyDecimalProperty
(vom Typ decimal
) in der MyClass
-Entität einer SQL Server-decimal(12, 10)
-Spalte zu. Dadurch wird sichergestellt, dass die Datenbank Zahlen mit maximal 12 Ziffern und bis zu 10 Dezimalstellen speichert.
Das obige ist der detaillierte Inhalt vonWie kann ich zunächst die Präzision und Skalierung für Dezimaleigenschaften im EF-Code steuern?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!