Entity framework 实体框架4-如何在属性设置器中注入逻辑?

Entity framework 实体框架4-如何在属性设置器中注入逻辑?,entity-framework,propertychanged,change-notification,Entity Framework,Propertychanged,Change Notification,我在edmx:Description中有一个从数据库自动生成的属性。然后,我为实体创建一个分部class.cs文件,并添加一个只读属性:ShortDescription。 ShortDescription的getter只处理描述、换行、回车等 如何在Description setter上为ShortDescription发出属性更改通知 谢谢 这将是一次黑客攻击,但它是可以做到的 首先,您需要覆盖和。然后检查属性名称的参数。。。在本例中,请参见描述。如果出现这种情况,请使用派生属性名调用Repo

我在edmx:Description中有一个从数据库自动生成的属性。然后,我为实体创建一个分部class.cs文件,并添加一个只读属性:ShortDescription。 ShortDescription的getter只处理描述、换行、回车等

如何在Description setter上为ShortDescription发出属性更改通知


谢谢

这将是一次黑客攻击,但它是可以做到的

首先,您需要覆盖和。然后检查属性名称的参数。。。在本例中,请参见描述。如果出现这种情况,请使用派生属性名调用ReportPropertyChanged或ReportPropertyChanged,在本例中为ShortDescription。对于参数的任何其他值,请调用ReportPropertyChanged/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);
    }

这将是一个黑客,但它是可以做到的

首先,您需要覆盖和。然后检查属性名称的参数。。。在本例中,请参见描述。如果出现这种情况,请使用派生属性名调用ReportPropertyChanged或ReportPropertyChanged,在本例中为ShortDescription。对于参数的任何其他值,请调用ReportPropertyChanged/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"); 
  }

这些方法也是分部的,所以在分部类中可以添加如下代码

 partial void OnDescriptionChanged()
  {
    OnPropertyChanged("ShortDescription"); 
  }

好吧,我应该得到任何反对票。。。由于某些原因,MS密封了ReportPropertyChange/Changed,但保留了打开PropertyChange/Changed的状态。使用代码示例,而不是散文示例。谢谢!我忘了看非部分事件!:好吧,我应该得到任何反对票。。。由于某些原因,MS密封了ReportPropertyChange/Changed,但保留了打开PropertyChange/Changed的状态。使用代码示例,而不是散文示例。谢谢!我忘了看非部分事件!: