Silverlight中DomainDataSource的一种Debug方法

当我们在使用Domain Service Class以及Entity Framework工作的时候,可能会出现因为隐藏的内部代码,而不知道错在哪里。

比如,在客户端程序需要向服务器端提交一个数据项,这个数据项包含了一个时间。

当我输入是: 1/1/0001 12:00:00 AM时,始终不对,百思不得其解。还以为是Entity Model的问题,这个问题困扰了我一段时间。

解决办法是:在DomainDataSource中加入一个SumittedChanges的事件。如:

        private void LibraryDataSource_OnSubmittedChanges(object sender, SubmittedChangesEventArgs e)
        {
            if (e.HasError)
            {
                System.Diagnostics.Debug.WriteLine(e.Error.ToString());
                e.MarkErrorAsHandled();
            }
        }


 

这样可以在Output中看到出现的问题。方便我们定位问题的原因。在Output中显示:

System.ServiceModel.DomainServices.Client.DomainOperationException: Submit operation failed. An error occurred while updating the entries. See the inner exception for details. InnerException 消息: SqlDateTime overflow. Must be between 1/1/1753 12:00:00 AM and 12/31/9999 11:59:59 PM.

 

这样我们知道了问题的原因在于输入的时间字符串范围不对。按照Output中指示的进行修改后,即完成。这也就表明我们需要加入输入验证

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值