Entity Framework 4 - Как внедрить логику в установщик свойств? - PullRequest
1 голос
/ 16 сентября 2010

У меня есть свойство, автоматически сгенерированное из базы данных в моем edmx: Описание . Затем я создаю .cs-файл «частичного класса» для объекта и добавляю свойство только для чтения: ShortDescription . Получатель ShortDescription просто обрабатывает описание (удаляет перевод строки, возврат каретки и т. Д.).

Как вывести уведомление об изменении свойства для ShortDescription на установщике Description?

Спасибо!

Ответы [ 2 ]

4 голосов
/ 16 сентября 2010

Это будет взлом, но это можно сделать.

Сначала необходимо переопределить 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);
    }
3 голосов
/ 30 сентября 2011

Методы также являются частичными, поэтому в ваш частичный класс вы можете добавить код, подобный этому

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