2011-08-03 20 views
0

私のdbmlの部分クラスの1つのプロパティからコードを取得して設定するラッパークラスがあります。ラッパーの理由は、値を事前にフォーマットする特殊なgetのためです。ここではラッパーは次のようになります(注:これは、実際のコードではなく、正確にフォーマット以外のすべてを表している):ラッパークラスは設定時にデータベースに保存されません

partial class Class1 
{ 
    public string PropertyFormatted 
    { 
     get 
     { 
      var ret = Property.Substring(1); 
      return ret; 
     } 
     set { Property = value; } 
    } 
} 

このラッパーは、編集ページのためにFormViewコントロールにバインド()を使用してバインドされています。なんらかの理由で、ラッパーの値は更新時に2回設定され、2回目に値が元の値に再割り当てされます(プロパティーは残っていますが、最終的には変更されません)。ただし、ラッパーをプロパティー自体に置き換えると、データベースに保存する際に問題はありません。

何が原因である可能性がありますか?

答えて

0

dbContextが自動的にこのメソッドを経由して、変更を検出する必要があります:あなたが誤って無効に自動変更などのようなものを検出していて

http://msdn.microsoft.com/en-us/library/system.data.entity.infrastructure.dbchangetracker.detectchanges(v=vs.103).aspx

を。手動でメソッドを呼び出して、それが違いを生むかどうか確認してください。

幸運を祈る!

+0

変更は実際に行われていましたが、何回か何回か繰り返していました(何とか2回目と3回目(?)の繰り返しが以前の値を使用していました)。 – Kyle

関連する問題