none
关于DataServiceContext 消费Odata问题 RRS feed

  • 问题

  • 数据源为lightswitch 提供的ODATA服务,本质就是ASP.NET 的WCF data service .IIS 下站点使用的是FORMS验证方式。

    现在使用WPF客户端来消费这个ODATA,通过在客户端添加引用,目前可以获取或操作ODATA数据。但在使用时发现二个问题,不知如何解决(估计是一个问题引起的)。先上代码。

      OmsProxy.ApplicationData dataSvc = null;

     dataSvc =new OmsProxy.ApplicationData(new Uri("http://localhost/oms/ApplicationData.svc/")); //此处使用其他正式生产服务器,也是一样问题

      dataSvc.Format.UseJson();

    dataSvc.Credentials = new NetworkCredential("user", "pwd"); form认证用户名及密码

    二个调用数据的处理(button 一次点击)

       var query = from a in dataSvc.OrderBills select a;            

    MessageBox.Show(query.ToList().Count.ToString());

     var  query1 = from  b in dataSvc.PayInfos select b;  

    MessageBox.Show(query1.ToList().Count.ToString());

    以上数据能正常调用(一次按钮事件,连续调用二次),新增也没有问题。主要问题表现为:

    按MS官网解释如下:

    DataServiceContext 却不是。  在交互之间将保持客户端上的状态,以便支持更新管理这样的功能。  DataServiceQuery 类是客户端库中两个主要的类。

    DataServiceContext 是有状态的,但我二次调用,通过Fiddler4监控及Sql server Profiler监控结果为表现下面二种情况:

    DataServiceContext 如何通过一个SESSION进行处理?

    老是少了内容,更新补不上去,只能给个连接 http://q.cnblogs.com/q/74239/



    • 已编辑 greystar 2015年7月29日 3:13
    2015年7月29日 2:11

全部回复

  • 你好,

    根据这个链接:http://q.cnblogs.com/q/74239/,我发现你在博客园发布了同样的问题,并且已经标记问题已解决。那么现在你的问题已经解决了吗?

    2015年8月6日 9:37
    版主
  • 通过变通手段解决了。

    但这不是我理解的那套思路。

    按MSDN上说

    DataServiceContext 却不是。  在交互之间将保持客户端上的状态,以便支持更新管理这样的功能。  DataServiceQuery 类是客户端库中两个主要的类。

    dataSvc.Credentials = new NetworkCredential("user", "pwd"); form认证用户名及密码

    上面所说我理解为他可以自己保持状态。

    但实际表现,不是那回事。调用会一次拒绝,再验证。这个现象难于理解。

    我想搞明白。为什么会有这种现象出现,原理是为什么。

    谢谢你的回复。

    2015年8月8日 3:12