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;
}
}
当我创建新富,然后改变一些属性它就像我认为这将。但是当我试图从EF数据库中获取Foo时,PropertyChanged事件被触发。任何建议如何从数据库中获取Foo而不是触发PropertyChanged?
谢谢!
当你从数据库中获得对象时,EF为你创建该对象,然后*设置*它的属性。这就是事件被解雇的原因。 – 3615
是的,我想通了..但有一些解决方法? – Pavol
没有人知道。 INPC通常用于ViewModels,但EF返回域实体。你应该改变方法。不应将INPC添加到实体,而应创建表示实体并在其中添加INPC的ViewModels。为了将实体转换为ViewModels,你可以使用像automapper这样的东西。 – 3615