2

我在 WPF 中使用 MVVM 模式来创建程序。

我在我的模型类上和平地实施 INPC....直到几天前我决定使用 EntityFramework。现在我不知道如何告诉 EntityFramework 在生成的实体类上实现 INPC 并在每次属性更改时引发属性更改事件。

诸如此类的其他问题只是建议在 ViewModel 上实现 INPC,但我真的希望模型类实现 INPC 以减少工作量。

我正在使用模型优先的方法来生成我的模型。

4

2 回答 2

2

Microsoft Prism 的“Unity Container”最近发布的“行为拦截”功能直接解决了这个问题。使用该特性可以使任何类的行为就好像它继承自 INotifyPropertyChanged。

该功能最引人注目的吸引力在于,您的 EF 类可以完全不知道正在发生的事情,并且不需要手动修改代码即可工作。正如您所料,您必须根据自己的要求来衡量性能损失。

您可以在此处下载 Prism。棱镜

这里有一个演练,您应该能够将其剪切并粘贴到您的代码中。拦截行为 您可以在应用程序的启动阶段连接本演练中的代码,Unity 将处理其余的...

准备好一些代码是一个很大的优势,因为如果你以前没有使用过类型注入,它会变得很麻烦,所以我推荐这个演练。

于 2013-06-29T22:52:49.130 回答
1

您可以使用名为PropertyChanged.Fody的 NuGet 包通过几行代码来完成此操作。文档在GitHub 上。请参阅我的 CodeProject 提示“将 INotifyPropertyChanged 添加到实体框架类”

于 2014-12-16T17:44:45.400 回答