当我们在使用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.@H_301_23@ Must be between 1/1/1753 12:00:00 AM and 12/31/9999 11:59:59 PM.
这样我们知道了问题的原因在于输入的时间字符串范围不对。按照Output中指示的进行修改后,即完成。这也就表明我们需要加入输入验证
总结以上是内存溢出为你收集整理的Silverlight中DomainDataSource的一种Debug方法全部内容,希望文章能够帮你解决Silverlight中DomainDataSource的一种Debug方法所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)