我在WPF中使用MVVM模式来创建程序。
我在我的模型类上和平地实现了INPC ......直到几天前我决定使用EntityFramework。现在我不知道如何告诉EntityFramework在生成的实体类上实现INPC,并在每次属性更改时引发属性更改事件。
其他问题如this只是建议在ViewModel上实现INPC,但我真的希望Model类实现INPC以减少工作量。
我正在使用模型优先方法来生成我的模型。
答案 0 :(得分:2)
最近发布的Microsoft Prism的“Unity Container”直接通过其“行为拦截”功能解决了这个问题。使用该功能可以使任何类 BEHAVE ,就像它继承自INotifyPropertyChanged一样。
该功能最引人注目的吸引力在于,您的EF课程可以保持幸福,不知道发生了什么,并且不需要手动编码修改才能工作。正如您所料,您必须根据您的要求来衡量性能。
你可以在这里下载Prism。 Prism
有一个漫游,你应该能够在这里剪切并粘贴到你的代码中。 Interception Behaviour您可以在应用的启动阶段通过此演练连接代码,Unity将处理其余的...
准备好一些代码是一个很大的优势,因为如果你以前没有使用过类型注入它可能会变得毛茸茸,所以我推荐这个演练。
答案 1 :(得分:1)
您可以使用名为PropertyChanged.Fody的NuGet包使用几行代码执行此操作。文档在GitHub。请参阅我的CodeProject提示"Adding INotifyPropertyChanged to Entity Framework Classes"。