AddQueryOption 在 WCF DataServices Portable 中不起作用
AddQueryOption not working in WCF DataServices Portable
我已经创建了一个 Xamarin.Forms 项目,现在我打算使用来自 WCF 数据服务的一些数据。
我这样创建查询:
MyEntities entities = new MyEntities(new Uri("http://localhost/MyService.svc/"));
DataServiceQuery<MyServiceReference.Info> query = entities.CreateQuery<MyServiceReference.Info>("GetInfo");
query.AddQueryOption("infoTag", "abc");
query.BeginExecute((result) =>
{
try
{
var que = result.AsyncState as DataServiceQuery<MyServiceReference.Info>;
var res = que.EndExecute(result);
foreach (var item in res)
{
System.Diagnostics.Debug.WriteLine(item.Name);
}
}
catch (Exception ex)
{
System.Diagnostics.Debug.WriteLine(ex.Message);
}
}, query);
根据 this tutorial,我应该看到完整的查询以及参数。
当我检查查询 URI 时,是这样的:http://localhost/MyService.svc/GetInfo
好像是少了参数。
如何正确添加它们?
好吧,我想通了...
我非常喜欢 Fluent 语法,但我忘了检查 CreateQuery
是否使用它。
所以
query.AddQueryOption("infoTag", "abc");
我必须使用这个:
query=query.AddQueryOption("infoTag", "abc");
或者这个:
DataServiceQuery<MyServiceReference.Info> query = entities.CreateQuery<MyServiceReference.Info>("GetInfo").AddQueryOption("infoTag", "abc");
我已经创建了一个 Xamarin.Forms 项目,现在我打算使用来自 WCF 数据服务的一些数据。
我这样创建查询:
MyEntities entities = new MyEntities(new Uri("http://localhost/MyService.svc/"));
DataServiceQuery<MyServiceReference.Info> query = entities.CreateQuery<MyServiceReference.Info>("GetInfo");
query.AddQueryOption("infoTag", "abc");
query.BeginExecute((result) =>
{
try
{
var que = result.AsyncState as DataServiceQuery<MyServiceReference.Info>;
var res = que.EndExecute(result);
foreach (var item in res)
{
System.Diagnostics.Debug.WriteLine(item.Name);
}
}
catch (Exception ex)
{
System.Diagnostics.Debug.WriteLine(ex.Message);
}
}, query);
根据 this tutorial,我应该看到完整的查询以及参数。
当我检查查询 URI 时,是这样的:http://localhost/MyService.svc/GetInfo
好像是少了参数。
如何正确添加它们?
好吧,我想通了...
我非常喜欢 Fluent 语法,但我忘了检查 CreateQuery
是否使用它。
所以
query.AddQueryOption("infoTag", "abc");
我必须使用这个:
query=query.AddQueryOption("infoTag", "abc");
或者这个:
DataServiceQuery<MyServiceReference.Info> query = entities.CreateQuery<MyServiceReference.Info>("GetInfo").AddQueryOption("infoTag", "abc");