WebApi OData 4: Etag ConcurrencyCheck with offline App

本文关键字:with offline App ConcurrencyCheck Etag OData WebApi | 更新日期: 2023-09-27 18:05:42

我正在与WebApi实现OData V4服务,我正在使用int?字段'Version'在我的dto上做OptimisticLocking时修补实体。

但我认为使用ETags/If-Match-Headers更优雅。因此,我添加了[ConcurrencyCheck]属性到我的'Version'属性。现在是@odata。etag信息根据version字段生成。好啊!

我使用一个脱机的客户端来访问我的OData服务。因此,我将"版本"信息存储在本地数据库中,并将存储的值与每个补丁请求一起发送。当然,如果使用Etags,这是行不通的。我是否应该存储Etag并将其发送到header中?或者是否可以从客户机上存储的版本信息计算Etag(我使用的是ODataJS)?

WebApi OData 4: Etag ConcurrencyCheck with offline App

根据规范,请求必须只有在指定值与目标实体的当前ETag值匹配时才被处理,所以当你得到这个实体时,你应该存储ETag。e2test代码可能有帮助