これは頻繁に質問されますが、SOにはまだありません。私はLinq to SQLを使用して、インメモリモデルのさまざまなデータ変更を可能にするアプリケーションに使用しています。その変更は、非同期処理用のキューに入れられます。だから、私はまだ更新について心配していません。 データのさまざまな部分を変更するには、Webページのモーダルポップアップを使用します。グリッドベースのものもあれば、属性のみのものもあります。 私は、ポストバックサイクルで生き残っていない変更に関する問題に遭遇しています。明らかに、私はすべての変更が行われ、ユーザーがページを送信するまで、データベースに何かを保持したくない。Linq to SQL、Ajaxポストバック、ASP.NETのページ状態
私がこれまでに選択したルートは、次のとおりです。
- I無効繰延ロード
- 私はセッションにものを入れて、私のルートオブジェクト
- ための[シリアル化可能]パーシャルクラスを作成し、 onloadイベントで取得してください。
これは原則として動作するようです。私はセッションから
p.PhysicianSpecialties[0].physician_specialty_code =
ddlSpecialty.SelectedItem.Value;
をオブジェクトを取得した後、子供たちのプロパティの一部を更新しようとすると、しかし、私はこのエラーを取得する:
Operation is not valid due to the current state of the object.
エラーが発生したのLINQでこのメソッドの呼び出しによって引き起こされますセッターメソッド:
this.SendPropertyChanging();
その他の特性がうまく更新されます:
p.PhysicianNames[0].first_name = txtFirstName.Text.ToUpper();
これはエラーを引き起こしません。
私の質問:根本的に間違っているのですか?これを行うより良い方法はありますか?エラーの原因
更新: 例外は 'System.Data.Linq.ForeignKeyReferenceAlreadyHasValueException'です。私はI am on to somethingだと思っていますが、まだ解決策はわかりません。
ドロップダウンに何をバインドしていますか? – cdonner