c# - OData 客户端只按顺序返回最后一个条目?

标签 c# windows-phone-7 odata wcf-data-services

我希望我只是错误地使用了 API,但出于某种原因,当我从 wp7 查询我的 oData 服务时,我只收到序列中的最后一个条目。我很确定该服务工作正常,因为我能够在浏览器中访问 oData 查询 URL 并获得正确的结果。但是,以下方法最终只显示列表中的一项。

我基于这篇博文中示例中的以下代码:http://chriskoenig.net/2010/10/30/odata-v2-and-windows-phone-7/

传入的可观察集合是绑定(bind)到 wpf 列表框的集合。

private static void LoadRuntimeData(ObservableCollection<CategoryItem> items)
{
    var catalog = GetCatalog();
    var queryUri = new Uri("/Categories?&$orderby=Name", UriKind.Relative);
    var categories = new DataServiceCollection<Category>(catalog);
    var queryHandle = App.ViewModel.StartQuerying();

    categories.LoadAsync(queryUri);
    categories.LoadCompleted += (e, c) =>
        {
            using (queryHandle)
            {
                var serverItems = categories.Select(k => new CategoryItem
                {
                    Name = k.Name,
                    Description = k.Description
                });

                items.Clear();
                foreach (var item in serverItems)
                {
                    items.Add(item);
                }
            }
        };
}

如有任何提示,我们将不胜感激。

编辑:根据下面的评论,我已经上传了可重现此问题的源代码:http://khanviewer.codeplex.com/

最佳答案

快速了解一下(我怀疑 Chris 会更清楚)。

但是您不需要以某种方式标识/标记主键列(定义唯一性的一个或多个属性)的属性吗?

我知道我在使用 RIA 服务时遇到过类似的情况,问题是我没有为唯一标识符列设置值。结果,我看到我所有的数据都下来了,但是当客户端获取数据时,它看到所有数据都是一条记录。

周杰伦

关于c# - OData 客户端只按顺序返回最后一个条目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4077635/

相关文章:

c# - 在 C# 中创建接口(interface)实例

c# - SQLite.Net-PCL 连接找不到数据库

windows-phone-7 - 列表项对第二次点击事件无响应

silverlight - 确定在文本框中按下 Enter 键

c# - 用于构造 OData 查询选项的强类型 Linq

c# - 在 Linq/ODataController 中使用全文搜索

c# - 无法访问已处置的对象?

c# - 多个 TimeSpan 的总和

windows-phone-7 - 如何在 Windows Phone 7 Silverlight 应用程序中保存应用程序状态(变量值、按钮状态等)?

c# - 无法使用 Excel Power Query : invalid metadata? 连接到 OData v4 服务