如果从本地数据库中提取LINQ-to-SQL类,则不会实现INotifyPropertyChanging和INotifyPropertyChanged

我在LINQ-to-SQL类中修改了我的数据源(通过旧的删除并在方法中向后拖动),并且惊讶地看到生成的类(MyDb.designer.cs)中不再实现INotifyPropertyChanging和INotifyPropertyChanged接口。

各个领域的方法看起来像这样……

[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; } } } 

关于为什么会发生这种情况以及它将如何影响我的应用程序

确保您的表具有主键。

检查以确保没有设置ObjectTrackingEnabled = false; 或者您没有在设计师表面上将其关闭。

添加主键将解决此问题。

拖放后你在设计师中改变了什么? IIRC,有一个跟踪的财产或一些这样的。