实体框架4-如何在属性设置器中注入逻辑?
-
03-10-2019 - |
题
我的eDMX中的数据库自动生成了一个属性: 描述. 。然后,我为实体创建一个“部分类” .CS文件,并添加一个只读属性: 简短的介绍. 。 ShortDescription的Getter简单地处理描述(删除线馈电,运输返回等)。
我如何在描述的设定器上提高属性变更通知?
谢谢!
解决方案
这将是一个黑客,但可以做到。
首先,您需要覆盖 ReportPropertyChanging
和 ReportPropertyChanged
. 。然后检查参数的属性名称...在这种情况下,“描述”。如果发生,请致电 ReportPropertyChanging
或者 ReportPropertyChanged
使用派生的属性名称,在这种情况下为“ ShortDescription”。对于参数的任何其他值,请调用 ReportPropertyChanging/Changed
.
编辑: 例如:
protected override void OnPropertyChanging(string property)
{
if (property == "Description")
{
base.OnPropertyChanging("ShortDescription");
}
base.OnPropertyChanging(property);
}
protected override void OnPropertyChanged(string property)
{
if (property == "Description")
{
base.OnPropertyChanged("ShortDescription");
}
base.OnPropertyChanged(property);
}
其他提示
这些方法也是部分的,因此在您的部分类中,您可以添加这样的代码
partial void OnDescriptionChanged()
{
OnPropertyChanged("ShortDescription");
}
不隶属于 StackOverflow