Xamarin odata POST 方法多次命中并使用旧数据

Xamarin odata POST method hitting multiple times and is using old data

我有一个使用 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 数据?我真的迷路了,不知道我还能如何尝试调试它。

我花了最后一天半的时间试图 google 解决方案,但此时我什至不知道要搜索什么。

信息: Web 项目使用带 EF 的 MVC 5 xamarin项目使用Xamarin forms 5.0.0.2291 数据 7.9.0

如有任何帮助,我们将不胜感激。

原来我在 oData 控制器和网络实用程序中都启动了一个新对象

var bar = new Foo();

var bar2 = new Foo();

所以我假设 oData 正在跟踪 bar 的上下文,而 EF 正在跟踪 bar2

的上下文

我更改后,它似乎按预期工作