针对Azure表服务的LINQ查询失败

时间:2016-06-30 11:23:16

标签: c# linq azure xamarin.ios

我的Azure表存储中保存了一些记录。我正在尝试从当前登录用户的特定日期/日期的表中提取记录。

我的查询没有返回任何内容,所以我的列表总是空的,即使我知道本月我有3条记录,在我的表中。

我不确定在这种情况下查询失败的原因。对于特定用户,如何为特定日期提取记录?有什么帮助吗?

这是我到目前为止所尝试的:

SuperClass

2 个答案:

答案 0 :(得分:0)

您编写的代码没有明显的错误来回答您的问题

  

如何为特定用户提取特定日期的记录?

您可以只比较日期时间的日期部分,而不是您在方法中使用的日期范围;

   var alerts = await alertTable.Where(n=>n.AccountId==client.CurrentUser.UserId).Where(n=> n.StartDate.Date == date.Date).ToListAsync();

我认为你也可以废除第二个where子句;

   var alerts = await alertTable.Where(n=>n.AccountId==client.CurrentUser.UserId && n.StartDate.Date == date.Date).ToListAsync();

如果您没有获得任何记录,那么对于userId和Date的特定组合,则最可能的事情是没有具有该确切组合的任何记录。

答案 1 :(得分:0)

出于某种原因,相同的查询最终起作用。我通过删除第一部分改进了它,我在那里检查当前用户的id。从我的情况来看,这不是必要的。

所以最终查询如下所示:

   var alerts = await alertTable.Where(n=> n.StartDate >= fromDate && n.StartDate <= toDate).ToListAsync();

现在可以提取所有已登录用户的详细信息。