Schleife / reflektiere alle Eigenschaften in allen EF-Modellen, um den Spaltentyp festzulegen

8

Mein Client verfügt über einen Standard zum Speichern von SQL Server-Dezimalstellen mit einer Dezimalzahl (13,4). Als Ergebnis habe ich in einem sehr großen und immer noch wachsenden Schema fast hundert Aussagen wie diese:

%Vor%

Wenn es eine Funktion gibt, bei der ich EF direkt mitteilen kann, dass alle Dezimalzahlen standardmäßig dezimal (13,4) sein sollen, würde ich das gerne verwenden. Wenn nicht, kann ich Reflektion verwenden, um jedes Objekt / jede Eigenschaft im Modell zu durchlaufen, so dass ich das in einigen Anweisungen tun kann?

Etwas wie:

%Vor%

Reflection scheint ein guter Weg zu sein, denn dann kann ich einige unserer anderen Konventionen implementieren, wo, wenn ein Objekt einen Namen und eine Beschreibung hat, der Name benötigt wird und auf 256 Zeichen begrenzt ist.

Aktualisierung: Ich folgte dem Link in Ivans Kommentar und passte ihn an, was für mich funktioniert:

%Vor%

Bald darauf lieferte er eine vollständige Antwort, die ich leicht änderte, um mit dezimaler und nullwertfähiger Dezimalzahl zu arbeiten:

%Vor%

Beide Ansätze funktionieren!

Update 2: Ich musste meine Objekte als DbSet & lt; & gt; im Kontext für das oben genannte zu arbeiten. Dies schien nicht erforderlich zu sein, als ich die Eigenschaften Zeile für Zeile festlegte.

    
Chris 04.01.2017, 16:27
quelle

1 Antwort

19

In EF Core v1.1.0 können Sie Folgendes verwenden:

%Vor%     
Ivan Stoev 04.01.2017, 17:01
quelle