LINQ to SQL を使用して Windows フォーム アプリケーションを構築しています。dbml ファイルから自動生成されたコードを使用しています。
Visual Studio は、テーブルから CNPJ プロパティに対して次のコードを生成しました。
[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_CNPJ", DbType="VarChar(20) NOT NULL", CanBeNull=false)]
public string CNPJ
{
get
{
return this._CNPJ;
}
set
{
if ((this._CNPJ != value))
{
this.OnCNPJChanging(value);
this.SendPropertyChanging();
this._CNPJ = value;
this.SendPropertyChanged("CNPJ");
this.OnCNPJChanged();
}
}
}
そして私が欲しかったのはこれです:
[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_CNPJ", DbType="VarChar(20) NOT NULL", CanBeNull=false)]
public string CNPJ
{
get
{
return APPLY_FORMAT(this._CNPJ);//Changed here
}
set
{
if ((this._CNPJ != value))
{
this.OnCNPJChanging(value);
this.SendPropertyChanging();
this._CNPJ = REMOVE_FORMAT(value); /// Changed here
this.SendPropertyChanged("CNPJ");
this.OnCNPJChanged();
}
}
}
しかし、コードが再生成されると、この変更は失われます。質問: この動作 (継承とオーバーライド、変更イベントのキャプチャ、その他) を達成する正しい方法は何ですか?
興味がある方のために説明すると、CNPJ は政府が提供するブラジルの企業識別番号です。