2016-07-25 2 views

Antwort

1

Damit EF eine Eigenschaft überwachen kann, benötigt es einen öffentlichen (1) Getter und Setter.

Für etwas wie das, was Sie tun, es sei denn, Sie benötigen es in der Datenbank für einige Operationen dort, ist es gut, nur als schreibgeschützte Eigenschaft in Ihrer Poco-Klasse. Die Operation des Hinzufügens von zwei ganzen Zahlen ist überhaupt keine Leistungsbeunruhigung und würde wahrscheinlich langsamer sein, um von der Datenbank zu pushen und zu ziehen.

(1) Der Setter kann protected internal sein, wenn Sie wollen, dass er "nur lesen" außer der Datenbank ist.

Als Beispiel dafür, wie Speicher zu tun, die für den Zweck der Speicherung in der Datenbank schätzen, können Sie etwas tun:

private int? total; 
public int Total 
{ 
    get 
    { 
     return total ?? sub_total_1 + sub_total_2; 
    } 
    protected internal set 
    { 
     total = value; 
    } 
} 

In diesem Beispiel werden die neuen private total Variablen speichern, was in der Datenbank . Es ist NULL-fähig, sodass, wenn es nicht aus der Datenbank abgerufen wird, standardmäßig die Summe von sub_total_1 und sub_total_2 verwendet wird. Sie können einen anderen Weg um diese Überprüfung finden, wenn die Subeigenschaften aktualisiert wurden, nachdem sie aus der Datenbank abgerufen wurden, aber dies ist ein guter Anfang für das, was Sie tun.

+0

diese zwei Ganzzahlen Summe war ein einfaches Beispiel. In diesem Fall ist die Aufgabe etwas komplexer. Deshalb möchte ich es zwischenspeichern. –

+0

Db-Operationen scheint jedoch langsamer als jede Berechnung hier –

+1

Wenn Sie in der Lage sind, Ihr direktes Beispiel zur Verfügung zu stellen, dann könnte das helfen. Es ist jedoch wahrscheinlich das, was Sie suchen, wenn Sie ihm ein "öffentliches" und "geschütztes internes Set" geben. – krillgar

Verwandte Themen