2015-08-21 89 views
1

我已经通过包管理器下载Parse引用到我的MVC应用程序中。已经添加的参考是Parse 1.5.5。.NET:从解析数据库检索数据

ParseClient.Initialize("app_key", ".net_key"); 
var test = new ParseObject("test");   
test["username"] = "test"; 
test["password"] = "test"; 
test.SaveAsync(); 

ParseQuery<ParseObject> query = ParseObject.GetQuery("test"); 
ParseObject test1 = query.GetAsync("mVzhilmRJw"); 

问题在于GetAsync方法返回ParseQuery类型,而不是ParseObject类型,如文档中所述。此外,元数据显示GetAsync方法不是Async类型,我认为这是根本原因。

以下是当我试图执行上述方法的LINQ版本,我得到的错误:

var query1 = ParseObject.GetQuery("test") 
    .WhereEqualTo("objectId", "W70H7Ad8rv"); 
IEnumerable<ParseObject> results = 
    (IEnumerable<Parse.ParseObject>)query1.FindAsync(); 

错误:

无法投类型的对象“的System.Threading .Tasks.UnwrapPromise 1[System.Collections.Generic.IEnumerable1[Parse.ParseObject]]' to type 'System.Collections.Generic.IEnumerable 1 [Parse.ParseObject]'。

我试着解析为第一次后端,不知道如果我已经包含适当的引用。此外,我在Windows 7操作系统上使用.NET 4.5框架,Visual Studio 2012。这与我面临的问题有什么关系?

任何帮助,高度赞赏。

TLDR:我们如何使用.NET 4.5框架VS 2012在.NET Web应用程序中从Parse中检索数据,以及哪些是必须添加的与Parse相对应的引用。

回答

0

这个问题的解决方案结果非常简单。我们需要知道什么是异步。这可以找到here。 仅在异步方法内调用异步方法非常重要。代码可以将样品所看到下面

public async void GetData() 
{ 
    ParseClient.Initialize("app_key", ".net_key"); 
    var query1 = ParseObject.GetQuery("test").WhereEqualTo("objectId", "xxxxxxxx"); 
    var result = await query1.FindAsync(); 
} 

如果你想知道如何不呼叫阻塞到异步方法,你可以参考here