私のSTEは非常にうまく機能し、asp.net gridviewで使用する場合を除いて、Webフォーム上のテキストボックス、メモなどの個々のコントロールで変更を追跡します。更新時に Gridview を使用すると、STE の状態として常に「追加済み」と表示されます。
私の問題の解決策はありますか?
私のSTEは非常にうまく機能し、asp.net gridviewで使用する場合を除いて、Webフォーム上のテキストボックス、メモなどの個々のコントロールで変更を追跡します。更新時に Gridview を使用すると、STE の状態として常に「追加済み」と表示されます。
私の問題の解決策はありますか?
はい。updateメソッドに渡されるオブジェクトはDBから照会されず、インスタンス化されるためです。できることは、エンティティをコンテキストにアタッチすることです。これでこの問題は解決します。
HTH。
GridView も ObjectDataSource も、要求間でエンティティを保持しません。GridView でデータ変更イベントをトリガーすると、オブジェクトの新しいインスタンスが作成されます。グリッドを埋めるために使用したエンティティとは異なります - それらのインスタンスは失われます。
ところで。Web アプリケーションで STE を使用し、リクエスト間でエンティティを格納することは、おそらく私が想像できる最悪の使用方法です。誰もが Web アプリのメモリ フットプリントと、クライアントとサーバー間の転送データ量を削減しようとしていますが、あなたは正反対の方向に向かっています。