從EF生成的代碼爲實體的屬性看起來是這樣的:實體框架4:PropertyChanged事件經常被人提出
/// <summary>
/// No Metadata Documentation available.
/// </summary>
[EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=false)]
[DataMemberAttribute()]
public global::System.DateTime DateCreated
{
get
{
return _DateCreated;
}
set
{
OnDateCreatedChanging(value);
ReportPropertyChanging("DateCreated");
_DateCreated = StructuralObject.SetValidValue(value);
ReportPropertyChanged("DateCreated");
OnDateCreatedChanged();
}
}
private global::System.DateTime _DateCreated;
partial void OnDateCreatedChanging(global::System.DateTime value);
partial void OnDateCreatedChanged();
這個代碼不檢查值實際上有沒有改變(在二傳手)。因此,即使您設置的值等於當前值,也會引發PropertyChanged事件。但是,在這種情況下,什麼事都不會發生變化,所以我不希望這個事件......
有關的EntityKey屬性他們不檢查:
/// <summary>
/// No Metadata Documentation available.
/// </summary>
[EdmScalarPropertyAttribute(EntityKeyProperty=true, IsNullable=false)]
[DataMemberAttribute()]
public global::System.Guid Id
{
get
{
return _Id;
}
set
{
if (_Id != value)
{
OnIdChanging(value);
ReportPropertyChanging("Id");
_Id = StructuralObject.SetValidValue(value);
ReportPropertyChanged("Id");
OnIdChanged();
}
}
}
private global::System.Guid _Id;
partial void OnIdChanging(global::System.Guid value);
partial void OnIdChanged();
我希望所有的屬性此行爲。 我在模型設計器中缺少一個設置,還是有其他解決方案?
Thanx!
而且我知道我可以爲此定製T4模板......但我寧願不在我的項目中使用自定義模板! – SolarX