AddQueryOption在WCF Data Services Portable中不起作用

时间:2015-02-27 13:52:34

标签: c# wcf-data-services

我创建了一个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

似乎缺少参数。

我怎样才能正确添加它们?

1 个答案:

答案 0 :(得分:0)

好吧,我想通了...... 我非常喜欢Fluent语法,但我忘了检查CreateQuery是否使用了它。

所以而不是

query.AddQueryOption("infoTag", "abc");

我必须使用它:

 query=query.AddQueryOption("infoTag", "abc");

或者这个:

DataServiceQuery<MyServiceReference.Info> query = entities.CreateQuery<MyServiceReference.Info>("GetInfo").AddQueryOption("infoTag", "abc");