调试 Silverlight RIA 服务 SubmitChanges

Posted

技术标签:

【中文标题】调试 Silverlight RIA 服务 SubmitChanges【英文标题】:Debugging Silverlight RIA Services SubmitChanges 【发布时间】:2011-05-04 02:52:08 【问题描述】:

我在从 Silverlight RIA 调试数据库操作时遇到了很大的困难。我想这是可以理解的,因为数据库操作是由大约 3 层服务和 ORM 和其他东西抽象出来的,但是有什么方法可以让我看到数据库告诉我关于这个问题的内容吗?我能够找到一个不提供太多信息的 EntityConflict 对象。

似乎表明有任何问题的唯一字段是“IsDeleted”属性等于 true,但是该属性在 MSDN 中没有得到很好的记录,我什至无法确定它是否为 true 是一个问题。

我尝试使用提琴手,但没有出现错误,我已附加到应用程序的未处理异常,但这使我回到 EntityConflict,我正在通过处理 SubmittedChanges 事件和访问参数来恢复它。我什至启用了 WCF 跟踪以尝试恢复一些信息,但当然也没有。

【问题讨论】:

我发现问题是由于数据库上的插入触发器造成的。这并没有改变触发器有一个非常具体的消息指示失败的事实,该消息在调试过程中从未呈现给我。 【参考方案1】:

您在提交操作失败后检查了 SubmitOperation.Error 吗?它应该包含您寻找的错误信息。更多关于错误处理的信息可以在这里找到:Link

【讨论】:

是的,我做到了,而且我在我的问题中说过,“这让我回到了 EntityConflict,我正在通过处理 SubmittedChanges 事件和访问参数来恢复它。”【参考方案2】:

这个问题是一个已知问题,至少在几年前,INSTEAD OF INSERT 不会为通过此方法插入的列返回 Scope_identity。 EF 使用此值来验证插入是否已完成。当它失败时,您会遇到删除冲突。这显然是 SQL Server EF 提供程序的一个已知问题,但我无法确认它已得到解决。

【讨论】:

以上是关于调试 Silverlight RIA 服务 SubmitChanges的主要内容,如果未能解决你的问题,请参考以下文章

Silverlight RIA 查询使用身份验证和模拟失败

WPF 中 RIA 服务的替换

带有 ASP.NET 的 RIA

部分代码未使用来自 RIA 服务的(重新)生成的代码进行编译

使用Entity Framework和WCF Ria Services开发SilverLight之6:查找指定字段

提交时可以编辑 WCF Ria 服务实体吗?