我有一個使用 odata 與 Web api 專案通信的 Xamarin 專案。
在資料庫中創建新專案時,第一次一切都按預期作業,并且在 Xamarin 視圖模型中點擊下面的行時,odata POST 方法僅被點擊一次。
await db.SaveChangesAsync();
下次我嘗試保存新專案時,POST 方法會被擊中兩次。下面“挑戰”物件中的第一次資料,是新的資料。然后不知何故 POST 方法斷點再次被擊中,并且它具有以前的專案資料。但是,xamarin 視圖模型 SaveChangesAsync 只被命中一次。
public async Task<IHttpActionResult> Post(Challenge challenge)
此操作結束時,EF 成功保存物件。但是,odata 拋出錯誤:“背景關系已經在跟蹤具有相同資源 Uri 的不同物體。”
我真的不知道發生了什么。我對 Xamarin 比較陌生,對 odata 也很陌生。odata 是否以某種方式快取以前的 POST 資料?我真的迷路了,不知道我還能如何嘗試除錯它。
我花了最后一天半的時間嘗試谷歌解決方案,但我什至不知道此時要搜索什么。
資訊:Web 專案使用帶有 EF 的 MVC 5 xamarin 專案使用 Xamarin forms 5.0.0.2291 odata 7.9.0
任何幫助,將不勝感激。
uj5u.com熱心網友回復:
事實證明,我在 oData 控制器和 Web 實用程式中都啟動了一個新物件
var bar = new Foo();
和
var bar2 = new Foo();
所以我假設 oData 正在跟蹤一個背景關系,bar而 EF 正在跟蹤一個背景關系bar2
一旦我改變了它,它似乎按預期作業
uj5u.com熱心網友回復:
您正在檢索快取的資料。確保您的 http 呼叫未快取或服務器端 api 未快取結果。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/409427.html
標籤:
