現在、古いプロジェクトで奇妙な問題に直面しています。プロジェクトは FormView を使用してデータを編集します。FormView は LinqDataSource にバインドされています。編集したオブジェクトを更新すると、
System.Data.Linq.ChangeConflictException - Row not found or change
例外。私はしばらくグーグルで検索しましたが、これまでに読んだ投稿から、これは同時実行の問題であることがわかりました。その間にデータを更新する誰かが本当にいるのであれば、私は同意しますが、誰もそうしません。
LinqDataSource は次のようになります。
<asp:LinqDataSource ID="ldsFirma" runat="server" ContextTypeName="mynamespace.myDataContext"
EnableUpdate="True" TableName="Firmendatens" Where="Kennummer == @Kennummer"
OnSelecting="ldsFirma_Selecting" StoreOriginalValuesInViewState="False" OnUpdating="ldsFirma_Updating">
<WhereParameters>
<asp:Parameter Name="Kennummer" Type="Int32" />
</WhereParameters>
</asp:LinqDataSource>
これは FormView の開始タグです。
<asp:FormView ID="fvFirma" runat="server" DataKeyNames="Kennummer" DataSourceID="ldsFirma" ...
Update は ImageButton によって発生します。
これらを修正するにはどうすればよいですか。すべての行がこれによって影響を受けるわけではないようです。数時間前に、別の Web アプリケーションで連続して値を変更しました。それ以来、私は現在問題を抱えている Web アプリケーションを何度か再構築してクリーンアップしましたが、それでも状況は変わりません。
実際には、false に設定できる「DisableConcurrency」プロパティを探していますが、残念ながら LDS はそのようなものを提供していません。
助言がありますか?