今まで、Visual Studio 2010 と Entity Framework 4.x を使用していました。(データベースファースト)。生成されたエンティティ クラスの一部について、部分的なクラス定義といくつかの読み取り専用プロパティを追加しました。プロパティの変更に関する通知を受け取るには、エンティティの PropertyChanged イベントを処理し、クエリされたプロパティの 1 つが変更された場合に、追加された読み取り専用プロパティの PropertyChanged イベントを発生させることができます。やさしい。
最近、デフォルトでEntity Framework 5を含むVisual Studio 2012に切り替えました。既存のデータベース (Database First) から新しいモデルを作成し、エンティティ クラスが生成されました。しかし、生成されたクラスには INotifyPropertyChanged を利用する機能がないようです - それらは POCO クラス (デフォルトのコード生成戦略) であり、Entity Framework 4.x のように EntityObject から派生しないためです。
私の最初の質問は、Entity Framework 5 (データベース ファースト) では、プロパティの変更についてどのように通知を受け取ることができますか? 作成したばかりのエンティティ クラスのインスタンスをバインドしたとしても (コンテキスト クエリからの動的エンティティ プロキシではないように)、WPF のデータ バインディングは機能するため、これは何らかの形で可能である必要があります。
2 番目の質問は、Entity Framework 5 (データベース ファースト) では、エンティティ オブジェクトの関連付けられたコレクションを wpf コントロールにバインドするにはどうすればよいですか? エンティティ関係の生成された関連付けプロパティは、HashSet の既定のインスタンスを持つ ICollection です。そのため、関連するエンティティ オブジェクトが追加または削除された場合、バインドされた wpf コントロールはそのコレクションの変更について通知されません (エンティティ セットのローカル プロパティで ObservableCollection を使用している場合でも、関連付けプロパティは変更通知のない HashSet のままです。) .
これらの本質的なことを達成するための「意図された」方法は何ですか?
前もって感謝します、ハンネス