zoukankan      html  css  js  c++  java
  • WCF RIA Services EntitySet 在Silverlight端的缓存问题

    //问题在子窗体中修改实体EdsNonstandardTaskItem的值并保存数据库后关闭子窗体刷新父页面数据
    
    //客户端调用方法如下
    var loadOp = _edsSoDC.Load<EdsNonstandardTaskItem>(_edsSoDC.GetEdsNonstandardTaskItemByContractGuidQuery(contractBaseInfo.ContractGuid));
    
    //Load后通过调试服务端已经将数据修改提交的数据库且服务端的GetEdsNonstandardTaskItemByContractGuid方法确实返回了最新的数据然而客户端_edsSoDC.EdsNonstandardTaskItem中的数据仍为修改前的数据缓存问题
    
    //解决方法:
    //方法一:
    //Load前将客户端的实体集合清空
    _edsSoDC.EdsNonstandardTaskItems.Clear();
    
    //方法二:
    //对Load的方法进行修改
    
    
    var loadOp = _edsSoDC.Load<EdsNonstandardTaskItem>(_edsSoDC.GetEdsNonstandardTaskItemByContractGuidQuery(contractBaseInfo.ContractGuid), LoadBehavior.RefreshCurrent, false);
    
    //需要引入using System.ServiceModel.DomainServices.Client;
    //LoadBehavior参考//
    //指定加载实体时控制标识缓存行为。
    //

    //KeepCurrent
    //缓存的实例未更改,且新读取的实例被丢弃。

    //MergeIntoCurrent
    //新读取实例的值将合并至属性值未修改的缓存实例。更改在该合并中不会丢失。

    //RefreshCurrent
    //将用来自新读取实例的当前值重写缓存实例的所有成员,无论这些值是否已修改。此外,实体的原始状///态还会设置成新读取实例。

  • 相关阅读:
    Druid.io系列(三): Druid集群节点
    Druid.io系列(二):基本概念与架构
    Druid.io系列(一):简介
    am335x backlight
    imx6 fec分析
    imx6 ar8031 千兆网卡不能用
    imx6 spi分析
    imx6 i2c分析
    imx6 uart分析
    imx6 gpio分析
  • 原文地址:https://www.cnblogs.com/starlet/p/2399930.html
Copyright © 2011-2022 走看看