在RIA服务中修改ChangeSet

时间:2010-04-28 17:44:59

标签: service ria

我正在使用RIA Services Beta 2和Linq2Sql和SL3。在我的SL3中,我有一个数据网格,我可以在其中进行一些数据映射(更新,插入和删除)。我调用SubmitChanges()时覆盖Submit方法。在域服务的submit方法中,我做了一些验证。如果ChangeSet中的特定ChangeSetEntry验证失败,则会添加ValidationErrors。然后我调用base.Submit(changeSet)。

因此,如果变更集有3个实体且其中一个实体导致验证错误,则还会回滚其他2个实体。看起来,RIA Services执行隐式事务,因此即使3中有2个没有任何验证错误,它也会提交全部3或无。有没有办法为RIA服务,防止有效实体的回滚,只有使验证失败的实体无效。

输入将不胜感激。

由于 莫希特

1 个答案:

答案 0 :(得分:0)

首先,我对使用SL3的方式或原因感到有些困惑,因为它仅支持Beta 1。

是否有理由不使用内置验证?如果您进行了大多数验证,则会在客户端进行验证,并且可以在服务器提交之前进行更正。

您可以通过覆盖PersistChangeSet方法来实现您想要的效果,但如果只保留部分实体,我会担心让您的客户端与服务器保持同步。

http://weblogs.asp.net/fredriknormen/archive/2009/12/29/wcf-ria-services-domainservice-life-cycle-and-adding-transactions.aspx