gpt4 book ai didi

c# - EntityObjects 是否有允许我访问 OldValue 和 NewValue 的 PropertyChanged 事件?

转载 作者:太空宇宙 更新时间:2023-11-03 11:28:32 25 4
gpt4 key购买 nike

我正在为我的模型层使用 Entity Framework ,我想连接一个 PropertyChanged 事件,该事件根据属性的 OldValue 和 NewValue 更改另一个属性。有没有我可以为此 Hook 的内置方法?

我希望在我的 PropertyChanged 事件中的基本逻辑是

if (oldValue.DefaultPropertyA == this.PropertyA)
this.PropertyA = newValue.DefaultPropertyA;

最佳答案

您有 OnPropertyChanging 分部方法。在那里您可以访问新值。

旧值,是当时属性的值,因此您可以通过常规属性访问它。

代码生成文件的结构如下:

    public global::System.String Property
{
get
{
return _Property;
}
set
{
OnPropertyChanging(value);
ReportPropertyChanging("Property");
_Property = StructuralObject.SetValidValue(value, false);
ReportPropertyChanged("Property");
OnPropertyChanged();
}
}

private global::System.String _Property;
partial void OnPropertyChanging(global::System.String value);
partial void OnPropertyChanged();

如您所见,您可以使用 OnPropertyChanging 和 OnPropertyChanged 部分方法来接收属性更改通知。

如果要更改正在设置的属性的值,则不能在分部方法中执行此操作。如果您真的想要这个,您应该更改您的 T4 模板以将此代码注入(inject)您的属性(property)或使用代码优先以便您可以直接访问

关于c# - EntityObjects 是否有允许我访问 OldValue 和 NewValue 的 PropertyChanged 事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8604607/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com