【发布时间】:2011-04-25 01:08:15
【问题描述】:
EF 导航属性不会引发 OnPropertyChanging 和 OnPropertyChanged 事件。
查看实体框架自动生成的代码时,一个简单的属性将具有如下所示的 setter:
Set
OnNameChanging(value)
ReportPropertyChanging("Name")
_Name = StructuralObject.SetValidValue(value, false)
ReportPropertyChanged("Name")
OnNameChanged()
End Set
但是,导航属性有一个这样的设置器:
Set
If (Not value Is Nothing)
CType(Me,EntityWithRelationships).RelationshipManager.InitializeRelatedCollection(Of DataType)("MyDatabase.FK_FKTable_PrimaryKeyTable", "FKTable", value)
End If
End Set
似乎导航属性应该只调用 4 个更改通知方法。您对为什么以这种方式实施 EF 生成器有任何见解吗?是否有一个选项可以打开通知或解决方法?另外,我认为编辑设计器生成的代码是不好的做法,对吗?
谢谢。
【问题讨论】:
标签: .net vb.net entity-framework