如果从本地数据库中提取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,有一个跟踪的财产或一些这样的。