私はVSデザイナーによって生成されたlinqtosqlクラスを拡張しようとしており、特定のフィールドの値が変更されたかどうかを判断する必要があります。テーブル/エンティティのDataContext Updateメソッドのフィールドの前後の値にアクセスする方法はありますか?ここでlinqtosqlパーシャルDataContextクラスの実装 - 前後の値の検査方法
は私のコードです:
public partial class DataClassesDataContext
{
partial void UpdateActivity(Activity instance)
{
this.ExecuteDynamicUpdate(instance);
//need to compare before and after values to determine if instance.AssignedTo value has changed and take action if it has
}
}
私も値が変更されたかどうかを知らせるために活動エンティティクラスにプロパティを追加することに開いているが、私は価値がある場合は教えする方法を見つけ出すことはできませんそこにも変わった。 ActivityクラスのOnAssignedToChangedメソッドを使用することはできません。なぜなら、プロパティ値が設定されていても必ずしも変更されないためです。 ListViewとLINQDataSourceコントロールを使用して更新しているので、何も関係なく設定されます。
また、OnAssignedToChangingメソッドを使用できる可能性がありますが、Activityインスタンスがその時点で現在の値を持っていないように思えます。 this.AssignedToは常にnullであるため、次のコードは機能しません。
partial void OnAssignedToChanging(int? value)
{
if (value != this.AssignedTo)
{
_reassigned = true;
}
}
部分的な方法? ;) – Kezzer
ええ、何か不足していますか?部分的なメソッドが.NET 3.5で追加されました - 興味があればそれらを見てください:) –
基本的に、部分クラスは部分的なメソッドを宣言していますが、定義することはできません。必要に応じて別のファイルに実装することができます。そうしないと、関連するすべてのメソッド呼び出しが存在しないかのように機能します。 –