silverlight   发布时间:2022-05-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了谈VS2008+Silverlight3+WCF+LINQtoSQL的数据更新(回复:websco)大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

概述

一、前段时间对于WCF+LinqToSQL的数据更新,我使用的办法是:   .attach(modified_entity,original_entity)   .SubmitChanges()  这种更新方式要在Silverlight端代码中不断记忆原始的实体(original_entity),给程序代码编写带来麻烦。在于websco(SunpirE)讨论关于数据更新问题时发现他也遇到这样的麻烦

一、前段时间对于WCF+LinqTosql的数据更新,我使用的办法是:

  .attach(modified_entity,original_entity)
  .SubmitChanges() 

这种更新方式要在Silverlight端代码中不断记忆原始的实体(original_entity),给程序代码编写带来麻烦。在于websco(SunpirE)讨论关于数据更新问题时发现他也遇到这样的麻烦,我们为此讨论了一晚上至深夜,他把这种数据更新方式称为“整体更新”,然他认为这种数据更新方不好,但也提不出新的解决办法。其实之前我也觉得这种数据更新办法确实有问题,不得已又花了点时间调试代码,试图找出解决办法。
二、又试了其他两个解决办法
方法
  .attach(modified_entity)
  .SubmitChanges() 
方法
  .attach(modified_entity,truE)
  .SubmitChanges()
 
第一种反法,可以正确执行,但是没有结果,数据没有被更新
第二种方法,不能正确执行,返回错误提示:“如果实体声明了版本成员或者没有更新检查策略,则只能将它附加为没有原始状态的已修改实体。”,错误提示我没有看明白,只好求助与帮助文件如下:

@H_618_37@


其中有一段话讲得正好是这个意思,这段话在图中已经标出,具体如下:
备注
如果以修改状态附加,则实体必须声明一个版本号或不得参与更新冲突检查。附加新的实体后,将会初始化所有子集合(例如,关联表中的实体的 EntitySet 集合)的延迟加载程序。调用 SubmitChanges 后,子集合的成员将被置于 Unmodified 状态。若要更新子集合的成员,必须显式调用 Attach,并指定该实体。

看到这里我基本明白了怎样做了
三、得到正确的方案
回到项目中修改了LingTosql项目中student实体的每个属性的“更新检查”项选择“从不”,操作如图:

谈VS2008+Silverlight3+WCF+LINQtoSQL的数据更新(回复:websco)


谈VS2008+Silverlight3+WCF+LINQtoSQL的数据更新(回复:websco)

事情再次得到圆满的解决,经过这样的修改,使用方法二就不返回错误了,并能够成功的更新数据。四、体会由于赶开发进度,看到silverlight这个好东西买了几本入门的书就匆匆上路了,由于迷信这些入门的书,没有深入的调试就开始赶进度了,因此带来了这么多问题,开始还以为是siliverlight不成熟,通过深入的调试解决了问题后才发现是自己不成熟,也是过于迷信入门数据的结果。实际上我们也没有时间把什么都学的扎实才开发项目,那么我们就什么事也做不成,也不会有进步,只有带着问题前进,才能更快的把新技术应用到开发项目中,在运动中把自行车学会。

大佬总结

以上是大佬教程为你收集整理的谈VS2008+Silverlight3+WCF+LINQtoSQL的数据更新(回复:websco)全部内容,希望文章能够帮你解决谈VS2008+Silverlight3+WCF+LINQtoSQL的数据更新(回复:websco)所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。