Entity Framework 4 - Wie Logik in Eigenschaft Setter injizieren?
-
03-10-2019 - |
Frage
Ich habe eine Eigenschaft automatisch generiert aus der Datenbank in meinem edmx: Beschreibung . Ich erstelle dann eine „partielle Klasse“ CS-Datei für die Entität und fügen Sie eine schreibgeschützte Eigenschaft: Kurze inhaltliche Beschreibung . Kurze inhaltliche Beschreibung der Getter-Beschreibung einfach verarbeitet (entfernt Zeilenvorschub, Wagenrücklauf, usw.).
Wie kann ich erhöhen Eigenschaft Änderungsbenachrichtigung für Kurze inhaltliche Beschreibung auf der Setter Beschreibung?
Danke!
Lösung
Das wird ein Hack sein, aber es kann getan werden.
Zuerst müssen Sie außer Kraft setzen ReportPropertyChanging
und ReportPropertyChanged
. Dann überprüfen Sie die Parameter für den Namen Ihrer Immobilie ... in diesem Fall „Beschreibung“. Wenn sie auftritt, rufen Sie ReportPropertyChanging
oder ReportPropertyChanged
mit dem abgeleiteten Eigenschaftsnamen, in diesem Fall „Kurze inhaltliche Beschreibung“. Für jeden anderen Wert des Parameters, rufen Sie die Basisversion von ReportPropertyChanging/Changed
.
Bearbeiten Beispiel:
protected override void OnPropertyChanging(string property)
{
if (property == "Description")
{
base.OnPropertyChanging("ShortDescription");
}
base.OnPropertyChanging(property);
}
protected override void OnPropertyChanged(string property)
{
if (property == "Description")
{
base.OnPropertyChanged("ShortDescription");
}
base.OnPropertyChanged(property);
}
Andere Tipps
Die Methoden sind auch teilweise, so in Ihrer partiellen Klasse Sie Code wie diese
hinzufügen partial void OnDescriptionChanged()
{
OnPropertyChanged("ShortDescription");
}