.NET:从解析数据库

时间:2015-08-21 20:42:02

标签: c# .net visual-studio-2012 parse-platform

我已经通过Package Manager下载了Parse引用到我的MVC应用程序中。已添加的引用是Parse 1.5.5。

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 Type。此外,元数据显示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]'的对象。

我第一次尝试使用Parse作为后端,并且不确定我是否包含了适当的引用。此外,我在Windows 7操作系统上使用.NET 4.5框架,Visual Studio 2012。这与我面临的问题有什么关系。

非常感谢任何帮助。

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

1 个答案:

答案 0 :(得分:0)

这个问题的解决方案非常简单。要求我们知道异步是什么。这可以找到here。 重要的是仅在Async方法中调用异步方法。代码示例如下所示

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

如果您想知道如何不阻止异步方法的调用,可以参考here