经过一番谷歌搜索,你们现在必须提供帮助。
我正在使用 OData v4 Client Code Generator
消费Odata服务一切都很好,(几乎)应该如此。 现在我需要更新我之前查询和修改过的实体。
我面临的斗争是,我必须进行部分更新,因为此实体中有一些属性不得更改。如果端点检测到这些道具上的更改,则会抛出异常。
前段时间我了解到,我应该可以进行这样的部分更新,互联网上有很多关于如何做的好建议。不幸的是,所有这些建议都是指EF-6-DataContext而不是Odata-DataContext。
此外,我没有太多代码可以展示,但是
_container.UserSystem.Context.ChangeState(e,EntityStates.Modified);
var resp = _container.SaveChanges(SaveChangesOptions.PostOnlySetProperties);
正如您可能已经注意到的那样,即时设置我不允许的SaveChangesOptions.PostOnlySetProperties
(不在DataServiceQueries上工作)。我已经尝试了这个,SaveChangesOptions.PostOnlySetProperties
面对上面提到的例外。
问题
我如何判断血腥Microsoft.OData.Client.DataServiceContext
执行部分更新而不是更新整个实体?
答案 0 :(得分:0)
我自己解决了这个问题。
显然,实现这一目标的唯一方法隐藏在2014年的this文件中,此后一切都没有改变。
不幸的是,必须使用1: User visit the website
2: Koa query the results for the the sidebar (route: /)
3. User see the sidebar on the webpage
4: User click on a blog (new page route: /blog/)
5: Koa share the result of the sidebar (Point 2)
6: User see the sidebar on the webpage
来获取已更新的已修改的属性。
DataServiceCollection
就我个人而言,我发现这是一种怪异而且非常糟糕的方式,但似乎没有别的办法。