到目前为止,我一直在使用 Visual Studio 2010 和 Entity Framework 4.x。(数据库优先)。对于我生成的一些实体类,我添加了部分类定义和一些只读属性。要获得有关属性更改的通知,我可以处理实体的 PropertyChanged 事件,并在查询的属性之一发生更改时为添加的只读属性引发 PropertyChanged 事件。非常简单。
最近我切换到 Visual Studio 2012,它默认包含 Entity Framework 5。我从现有数据库(数据库优先)创建了一个新模型,并生成了实体类。但似乎生成的类无法利用 INotifyPropertyChanged - 因为它们是 POCO 类(这是默认代码生成策略),因此不像 Entity Framework 4.x 中那样从 EntityObject 派生。
所以我的第一个问题是:使用 Entity Framework 5(数据库优先),我如何才能获得有关属性更改的通知?这一定是可能的,因为 WPF 中的数据绑定确实有效,即使绑定了刚刚创建的实体类实例(因此它不是来自上下文查询的动态实体代理)。
我的第二个问题是:使用 Entity Framework 5(数据库优先),我如何将实体对象的关联集合绑定到 wpf 控件?实体关系的生成关联属性是 ICollection,具有默认的 HashSet 实例。因此,当添加或删除相关实体对象时,绑定的 wpf 控件不会收到有关该集合更改的通知(即使在实体集的本地属性中使用 ObservableCollection 时,关联属性仍然是没有更改通知的 HashSets..) .
实现这些基本目标的“预期”方式是什么?
在此先感谢,汉内斯