Класс LINQ-to-SQL не реализует INotifyPropertyChanging и INotifyPropertyChanged при извлечении из локальной базы данных - PullRequest
4 голосов
/ 14 мая 2010

Я изменил свой источник данных в своем классе LINQ-to-SQL (с помощью старого метода удаления и перетаскивания назад) и был удивлен, увидев, что интерфейсы INotifyPropertyChanging & INotifyPropertyChanged больше не реализованы в сгенерированных классах (MyDb.designer). CS).

Методы для отдельных полей выглядели следующим образом ...

[Column(Storage="_Size", DbType="NVarChar(100)")]
public string Size
{
    get
    {
        return this._Size;
    }
    set
    {
        if ((this._Size != value))
        {
            this.OnSizeChanging(value);
            this.SendPropertyChanging();
            this._Size = value;
            this.SendPropertyChanged("Size");
            this.OnSizeChanged();
        }
    }
}

Чтобы выглядеть так ...

[Column(Storage="_Size", DbType="NVarChar(100)")]
public string Size
{
    get
    {
        return this._Size;
    }
    set
    {
        if ((this._Size != value))
        {
            this._Size = value;
        }
    }
}

Есть идеи, почему это происходит и как это повлияет на мое приложение?

Ответы [ 4 ]

14 голосов
/ 14 июля 2010

Убедитесь, что у вашей таблицы есть первичный ключ.

5 голосов
/ 14 мая 2010

Убедитесь, что вы не установили ObjectTrackingEnabled = false; или не выключили его на поверхности конструктора.

1 голос
/ 27 января 2011

Добавление первичного ключа решит проблему.

0 голосов
/ 14 мая 2010

Что-то изменилось в конструкторе после перетаскивания? IIRC, есть отслеживаемая собственность или что-то подобное.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...