我正在使用WebApi实现OData V4服务而我正在使用int?字段'版本'在我的DTO上修补实体时执行OptimisticLocking。这很好。
但我认为使用 ETags / If-Match-Headers 会更优雅。因此,我将 [ConcurrencyCheck] 属性添加到我的版本'属性。现在,基于版本字段生成 @ odata.etag 信息。精细!
我使用支持脱机的客户端来访问我的OData服务。因此,我存储了版本'本地数据库中的信息,并使用每个Patch请求发送存储的值。 当然,如果使用Etags,这不起作用。 我应该存储Etag并将其发送到标题中吗?或者是否可以从客户端存储的版本信息中计算Etag(我使用ODataJS)?