views:

108

answers:

3

I modified my data source in my LINQ-to-SQL class (by the old delete and drag back in method), and was surprised to see the INotifyPropertyChanging & INotifyPropertyChanged interfaces no longer implemented in the generated classes (MyDb.designer.cs).

The methods for the individual fields went from looking like this...

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

To looking like this...

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

Any ideas on why this happens and how it will affect my application?

A: 

Did you change something in the designer after drag and drop? IIRC, there is a tracked property or some such.

John Buchanan
+3  A: 

Check to make sure you did not set ObjectTrackingEnabled = false; or that you did not turn it off on the designer surface.

Adam
+3  A: 

Make sure your table has a primary key.

Immortal
For future reference, this is the answer.
Clarence Klopfstein