Dezimalgenauigkeit und Skalierung zunächst mit EF Code verwalten
Entity Framework (EF) Code First ordnet standardmäßig System.Decimal
-Eigenschaften SQL Server-decimal(18, 0)
-Spalten zu. Dieser Standardwert ist möglicherweise nicht immer ideal, insbesondere wenn Ihre Anwendung eine höhere Genauigkeit oder eine größere Anzahl von Dezimalstellen erfordert. Glücklicherweise bietet die EF-API einfache Methoden zum Anpassen dieser Zuordnung.
Präzision und Skalierung konfigurieren
Vor EF 4.1 verwendeten Entwickler normalerweise die HasColumnType
-Methode, um Spalteneigenschaften innerhalb einer Modelliterationsschleife anzupassen. Zum Beispiel:
<code class="language-csharp">foreach (var property in modelBuilder.Properties.Where(p => p.ClrType == typeof(decimal))) { property.HasColumnType($"decimal({property.Precision}, {property.Scale})"); }</code>
EF 4.1 und spätere Versionen bieten jedoch einen optimierteren Ansatz mit der HasPrecision
-Methode. Diese Methode, Teil von DecimalPropertyConfiguration
, legt Präzision und Skalierung direkt fest.
So verwenden Sie HasPrecision
:
<code class="language-csharp">modelBuilder.Entity<MyClass>().Property(o => o.MyDecimalProperty).HasPrecision(12, 10);</code>
Dieser Code erstellt eine SQL Server-Spalte mit einer Genauigkeit von 12 und einer Skalierung von 10 für die Eigenschaft MyDecimalProperty
innerhalb der Entität MyClass
.
Diese Methode gewährleistet eine genaue und zuverlässige Datenverarbeitung in Ihren EF Code First-Anwendungen, indem sie eine präzise Kontrolle über die Dezimalspeicherung in der Datenbank ermöglicht.
Das obige ist der detaillierte Inhalt vonWie steuere ich zunächst die Präzision und Skalierung von Dezimalwerten im EF-Code?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!