自定义客户端消费LS的ODATA示例

LightSwitch默认使用了ODATA方式,这样便于向其他系统共享数据。

下面是一段WPF客户端使用 LS 的ODATA

1.在WPF客户端中添加服务引用 已发布的 LS的ODATA的服务地址 如  http://192.168.1.100/MyTest/ApplicationData.svc

applicationdata 对应的为LS内置的数据库

2.LS开启了用户认证,需要在消费时进行认证处理,使用FORM认证


 WpfApplication1.ServiceReference1.ApplicationData data =
                new ServiceReference1.ApplicationData(
                    new Uri(" http://192.168.1.100/MyTest/ApplicationData.svc"));
            data.Format.UseJson();  //默认使用XML方式,传输量较大

data.Credentials = new NetworkCredential("user", "pwd");// 此处为LS的登录用户(FORM方式),非服务器WINDOWS用户


3。获取数据

Expand 为获取关联数据,不然就是数字等类型

   var datas = from a in data.ProjectItemSet.Expand("BizPerson,Leader,DocManager,ProjectKind,ProjectState,ProjectType") where a.ProjectYear == 2015 select a;
            MessageBox.Show(datas.ToList().Count.ToString());
            AppConfig config=new AppConfig();
            config.AppKey = "tr1";
            config.AppValue = "test";
          
            data.AddToAppConfigs(config);
            data.SaveChanges();

4.待处理问题

  一个是每次调用服务器数据,数据库都会重新判断用户,这个步骤多做了。

 一个是调用一次,会有生成二个HTTP请求,第一次显示为<title>401 - 未授权: 由于凭据无效,访问被拒绝。</title>,而第二次请求,则显示正确的数据。

以上二个应该还是和授权有关,等待有空再行研究



你可能感兴趣的:(自定义客户端消费LS的ODATA示例)