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>,而第二次请求,则显示正确的数据。
以上二个应该还是和授权有关,等待有空再行研究