怎么在客户端代码访问ado.net data service

如何在客户端代码访问ado.net data service?
我在网上查了些例子,自己尝试的时间为什么就老出错呢?
服务器如下:
C# code

[WebGet]
public IQueryable<string> GetDefectDistinct(string defect)
{
    IQueryable<string> result;
    switch (defect.ToLower())
    {
        case "corrosion":
            result = (from p in this.CurrentDataSource.PLDA_CORROSION
                      orderby p.INSPECTIONBATCH
                      select p.INSPECTIONBATCH).Distinct();
            break;                
        case "weld":
            result = (from p in this.CurrentDataSource.PLDA_WELD
                      orderby p.INSPECTIONBATCH
                      select p.INSPECTIONBATCH).Distinct();
            break;
        default:
            throw new Exception("输入参数错误");
    }
    return result;
}



客户端如下:
C# code

private void btnTest_Click(object sender, RoutedEventArgs e)
{
    string uri = string.Format("/GetDefectDistinct?defect='corrosion'");
    IEnumerable<string> strList = PLDA.Data.DataSource.pRemoteSource.Execute<string>(new Uri(uri, UriKind.Relative));
    foreach (var p in strList)
    {

    }
}



代码很简单,我在浏览器中访问没问题,可以正常显示,
但在客户端访问时Execute这行语句能执行,但实际上strList为空,
foreach时,就会出现一些异常:未处理InvalidOperationException,处理响应流时出错,XML元素包含混合内容。
但通过Fiddler查看从服务端返回的结果仍然是正常的。

这又是为什么呢?

------解决方案--------------------
http://social.msdn.microsoft.com/Forums/en-US/adodotnetdataservices/thread/418ab1e3-d087-4e8d-8841-0df6b6a856bc
------解决方案--------------------
探讨

谢谢,已经搞定,代码如下,
但存在一个问题,目前我的服务端不需要用户验证,
所以下面的代码可以直接使用,但如果我以后在服务端加上验证的话,
我会在原来的上下文PLDA.Data.DataSource.pRemoteSource加上验证信息,
但下面的方法是用的WebClient直接下载相应返回值为字符串,然后对字符串处理的,
那如何为WebClient添加验证信息呢?
代码注释部分直……

------解决方案--------------------
恩,从数据量考虑还是有道理的。

DataService Client底层还是调用HttpWebRequest,
所以直接使用WebClient或者HttpWebRequest的验证问题应该没什么。