2

我的应用程序对 Azure Webservice 数据库进行了简单调用,我想将返回的行复制到一个新列表中。

private IMobileServiceTable<dbEntry> entryTable = App.MobileService.GetTable<dbEntry>();
private MobileServiceCollectionView<dbEntry> currentEntries;

currentEntries = (entryTable.Where(ev => ev.event_date.Month == dateToShow.Month)
            .ToCollectionView());

foreach (dbEntry ev in currentEntries)
{
    //insert ev into another List
}

问题是对 DB 的“where”调用是异步的,所以当到达循环时,还没有元素currentEntries

如何在执行循环之前检测到调用已完成?有为此的事件处理程序吗?

谢谢你。

4

1 回答 1

1

听起来您已经找到了此解决方案,但我会将其发布给遇到此问题的其他人。

除非你想直接将一个 UI 元素绑定到操作的结果上,否则我建议你不要使用 ToCollectionView 方法。相反,请执行以下操作:

private IMobileServiceTable<dbEntry> entryTable = App.MobileService.GetTable<dbEntry>();
private List<dbEntry> currentEntries;

currentEntries = await entryTable.Where(ev => ev.event_date.Month == dateToShow.Month)
   .ToListAsync();

foreach (dbEntry ev in currentEntries)
{
    //insert ev into another List
}
于 2013-01-24T23:05:53.593 回答