Set decimal(16, 3) für eine Spalte im Code-First-Ansatz in EF4.3
Wie kann ich dies tun :
private decimal _SnachCount;
[Required]
[DataType("decimal(16 ,3")]
public decimal SnachCount
{
get { return _SnachCount; }
set { _SnachCount = value; }
}
private decimal _MinimumStock;
[Required]
[DataType("decimal(16 ,3")]
public decimal MinimumStock
{
get { return _MinimumStock; }
set { _MinimumStock = value; }
}
private decimal _MaximumStock;
[Required]
[DataType("decimal(16 ,3")]
public decimal MaximumStock
{
get { return _MaximumStock; }
set { _MaximumStock = value; }
}
Nach der Erzeugung der Datenbank, die von diesem Teil von meinem Modell diese drei Spalten Typ decimal(18,2),warum?
was ist in diesem code der Fehler? wie kann ich das tun ?
mögliche Duplikate von Dezimalstellen und Skalierung in EF Code First
InformationsquelleAutor Ali Foroughi | 2012-01-27
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den
DataType
Attribut ist ein Validation-Attribut. Sie tun müssen, die mit dem ModelBuilder.Gerne helfen! Habt einen schönen Tag!
Zusätzlicher Hinweis: nach dem überschreiben Sie die
OnModelCreating
Methode (wie oben gezeigt), wenn Sie dann ausführen, dasadd-migration
- Befehl in der Paket-Manager-Konsole, erkennt es den neuen code und fügen Sie eine migration korrekt zu ändern, die Spalten.Ist dies nun auch möglich, dies durch Anmerkungen zu Daten über die Spalte Attribut wie [Spalte(TypeName = "decimal(16,3)")] ?
InformationsquelleAutor dknaack
Können Sie ändern, alle dezimal propreties in der Datenbank. In Ihrem DBContext in der Methode OnModelCreating Zeile hinzufügen:
InformationsquelleAutor Robert
Dies ist kopiert von der Antwort hing ich die gleiche Frage hier; https://stackoverflow.com/a/15386883/1186032.
Ich hatte eine schöne Zeit mit der Erstellung eines Benutzerdefinierten Attributs für diese:
es diese
und die Magie passiert bei der Bildung des Modells mit einigen Reflexion
der erste Teil ist, um alle Klassen in das Modell (mein benutzerdefiniertes Attribut definiert ist, dass die Montage so habe ich, dass man die Montage mit dem Modell)
zweiten foreach bekommt alle Eigenschaften in dieser Klasse mit dem benutzerdefinierten Attribut und das Attribut selbst, so kann ich Holen Sie sich die Präzision und die Daten der Waage
danach habe ich zu nennen
also rufe ich im modelBuilder.Entität() durch Reflexion und speichern es in der variable entityConfig
dann Baue ich die "c => c.PROPERTY_NAME" lambda-Ausdruck
Danach, wenn der dezimal-null-Werte zulässt, nenne ich das
Methode (ich nenne dies durch die position im array, es ist nicht ideal, ich weiß, jede Hilfe wird sehr geschätzt)
und wenn es keine null-Werte zulässt, nenne ich das
Methode.
Dass die DecimalPropertyConfiguration ich nenne die HasPrecision Methode.
github.com/richardlawley/EntityFrameworkAttributeConfig von stackoverflow.com/users/163495/richard hilft es viel sauberer können Sie sehen, in seinem Kommentar in meiner Antwort hier: stackoverflow.com/questions/3504660/...
InformationsquelleAutor KinSlayerUY
So, was ich habe, für mich zu arbeiten, ist dies:
Dies ist EF Code first für .NET core.
InformationsquelleAutor Vulovic Vukasin
Können Sie auch legen Sie die Genauigkeit von Dezimalstellen unter Verwendung des code-first-Modell mapping-Ansatz:
InformationsquelleAutor RickL