zoukankan      html  css  js  c++  java
  • 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中指示的进行修改后,即完成。这也就表明我们需要加入输入验证

  • 相关阅读:
    Python异常处理
    奇异值分解(SVD)详解及其应用
    上楼梯问题
    Python面向对象(特殊成员)
    Best Time to Buy and Sell Stock II
    String to Integer (atoi)
    Gas Station
    N-Queens II
    Letter Combinations of a Phone Number
    N-Queens
  • 原文地址:https://www.cnblogs.com/java20130722/p/3206858.html
Copyright © 2011-2022 走看看