我正在尝试查询azure移动服务数据库以获取特定记录。我需要查询来查找NotifyDate
列等于当前日期的记录。然后从找到的记录中,我想获取记录的Name
列中的字符串值,并将其存储在我可以在数据库外部使用的字符串中。
这是我想出的,但它给了我一个错误:
无法将方法组'ToString'转换为非委托类型'string'。 你打算调用这个方法吗?
在以下行:
string NotifyDate = FindNotifyDate().ToString;
你有没有更好的方法来做到这一点?
当前代码:
private IMobileServiceTable<TodoItem> todoTable =
MobileService.GetTable<TodoItem>();
private MobileServiceCollection<TodoItem, TodoItem> items;
private List<TodoItem> notifyItems;
protected void Application_Start()
{
WebApiConfig.Register();
string NotifyDate = FindNotifyDate().ToString;
}
public async Task<TodoItem> FindNotifyDate()
{
DateTime test = DateTime.Now;
test = test.AddMilliseconds(-test.Millisecond);
notifyItems = await todoTable.Where(todoItem => todoItem.NotifyDate == test)
.ToListAsync();
return notifyItems[0];
}
答案 0 :(得分:1)
尝试以下代码
protected void async Application_Start()
{
WebApiConfig.Register();
var todoItem = await FindNotifyDate();
string NotifyDate = todoItem.ToString();
}
FindNotifyDate
是异步操作。您必须等待其完成才能致电ToString()
TodoItem
。否则,在您的示例中,您将获得Task作为结果类型,而这不是您所期望的。使其同步操作以在呼叫后立即呼叫ToString()
或等待完成,如上例所示。