Linq-to-SQLを使用して、デザイナにドラッグされたデータベーステーブルのクラスを生成します。私はデザイナーにProduct
テーブルをドラッグすると、Visual Studioは、このように生成されます:Linq-to-SQLでは間違ったコードが生成されますが、コンパイル時にエラーはありません
[global::System.Data.Linq.Mapping.TableAttribute(Name="dbo.Products")]
public partial class Product : INotifyPropertyChanging, INotifyPropertyChanged
{
// ...
partial void OnProductIDChanging(int value);
partial void OnProductIDChanged();
[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ProductID", AutoSync=AutoSync.OnInsert, DbType="Int NOT NULL IDENTITY", IsPrimaryKey=true, IsDbGenerated=true)]
public int ProductID
{
get
{
return this._ProductID;
}
set
{
if ((this._ProductID != value))
{
this.OnProductIDChanging(value);
this.SendPropertyChanging();
this._ProductID = value;
this.SendPropertyChanged("ProductID");
this.OnProductIDChanged();
}
}
}
//...
}
OnProductIDChanging
とOnProductIDChanged
抽象メソッドではなく、彼らは空になっているが、なぜ彼らは、エラーをコンパイル与えることはありません。ありがとう。
どういう意味ですか?コンパイラが空のメソッドでエラーを引き起こすのはなぜですか? –