Linq to REST 的 UpdateObject 的用途是什么?
当人们使用 ADO.NET 数据服务并通过 Linq to REST(以前称为 Project Astoria)使用它时,它似乎并不那么直观。
也就是说,使用普通的 Linq to SQL,DataContext 监视对象并跟踪更改,因此简单的 SubmitChanges()
调用实际上会提交我的所有更改。
但使用 Linq to REST,我必须调用 UpdateObject(entity)
才能通知 DataContext 该实体已脏。
这有什么意义呢?或者我错过了什么?为什么不让自动生成的类实现 INotifyPropertyChanged 并跟踪像 Linq to SQL 这样的更改?
When one is using ADO.NET Data Services and consuming it via the Linq to REST (formerly Project Astoria), it doesn't seem to be as intuitive as it could be.
Namely, with normal Linq to SQL, the DataContext monitors objects and tracks changes, so a simple SubmitChanges()
call will actually submit all my changes.
But with Linq to REST, I have to call UpdateObject(entity)
in order to notify the DataContext that the entity is dirty.
What's the point in this? Or am I missing something? Why not just have the autogenerated classes implement INotifyPropertyChanged and track changes like Linq to SQL?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
在 3.5 SP1 版本中,我们没有此功能。但在下一个版本中,astoria 1.5 CTP2 和 Dev10 beta2,我们可以选择生成实现 INotifyPropertyChanged 的类,在这些情况下,不需要调用 UpdateObject。
如果您使用 VS 生成类,那么在 dev10 中,此选项默认打开。但对于 3.5 SP1,您将必须使用手动打开此选项。
如果您需要更多这方面的信息,请告诉我。
对于 CTP2 位,链接如下: http://blogs.msdn.com/astoriateam/archive/2009/08/31/ado-net-data-services-v1-5-ctp2-now- available-for-download.aspx
谢谢
普拉蒂克
In 3.5 SP1 release, we didn't have this feature. But in the next release, both astoria 1.5 CTP2 and Dev10 beta2, we have the option to generate classes that implement INotifyPropertyChanged, and in those cases, one doesn't need to call UpdateObject.
If you are using VS to generate the classes, then in dev10, this option is on by default. But for 3.5 SP1, you will have to use manual turn this option.
Please let me know if you need more information on this.
For CTP2 bits, here's the link: http://blogs.msdn.com/astoriateam/archive/2009/08/31/ado-net-data-services-v1-5-ctp2-now-available-for-download.aspx
Thanks
Pratik