エンティティフレームワーク4-プロパティセッターにロジックを注入する方法は?
-
03-10-2019 - |
質問
EDMXのデータベースから自動生成されたプロパティがあります。 説明. 。次に、エンティティの「部分クラス」.csファイルを作成し、読み取り専用プロパティを追加します。 簡単な説明. 。 ShortDescriptionのGetterは、単に説明を処理します(ラインフィード、キャリッジリターンなどを削除します)。
説明のセッターでShortDescriptionのプロパティ変更通知を提起するにはどうすればよいですか?
ありがとう!
解決
これはハックになるでしょうが、それを行うことができます。
まず、オーバーライドする必要があります ReportPropertyChanging
と ReportPropertyChanged
. 。次に、プロパティの名前のパラメーターを確認します...この場合は「説明」です。発生した場合は、電話してください ReportPropertyChanging
また ReportPropertyChanged
派生したプロパティ名、この場合は「shortdescription」。パラメーターの他の値については、のベースバージョンを呼び出します ReportPropertyChanging/Changed
.
編集: 例えば:
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);
}
他のヒント
メソッドも部分的なので、部分的なクラスではこのようなコードを追加できます
partial void OnDescriptionChanged()
{
OnPropertyChanged("ShortDescription");
}
所属していません StackOverflow