0
私はいくつかの基本クラスを使用するWPFアプリケーションを持っています。私もFody PropertyChangedとEF 6.1.3を使います。プロパティのいずれかが変更されたときはいつでもプロパティSaveNeededを変更しようとしています。だから私はこのクラスを書く:データベースからエンティティを取得するときにPropertyChangedを起動させない方法は?
public class Foo : INotifyPropertyChanged
{
public Foo()
{
PropertyChanged += Foo_PropertyChanged;
}
public event PropertyChangedEventHandler PropertyChanged;
public string GivenNames { get; set; }
public int Id { get; set; }
[NotMapped]
public bool SaveNeeded { get; set; }
private void Foo_PropertyChanged(object sender, PropertyChangedEventArgs e)
{
SaveNeeded = true;
}
}
私は新しいFooを作成し、いくつかのプロパティを変更すると、それは私が思うように動作します。しかし、EFでデータベースからFooを取得しようとすると、PropertyChangedイベントが発生します。どのようにFooをデータベースから取得し、PropertyChangedを起動させないかの提案はありますか?
ありがとうございました!私はこのようにそれをやった提案のため
データベースからオブジェクトを取得すると、EFによってそのオブジェクトが作成され、次に*プロパティが設定されます。だからこそ、イベントが解雇されるのです。 – 3615
はい、私はそれを考え出しましたが、回避策がいくつかありますか? – Pavol
私が知っている人はいません。 INPCはViewModelで通常使用されますが、EFはドメインエンティティを返します。あなたはアプローチを変更する必要があります。エンティティにINPCを追加する代わりに、エンティティを表すViewModelを作成し、そこにINPCを追加する必要があります。エンティティをViewModelsに変換するには、オートマッパのようなものを使用できます。 – 3615