Parse.com - .NET SDK C#LINQ连接语法

时间:2015-03-23 20:31:31

标签: c# .net linq join parse-platform

我试图在MVC 5项目的此链接中实现自定义身份提供程序:https://github.com/corrego/Parse.AspNet.Identity 在某种程度上,它定义了一个IdentityUserLogin类,该类派生自ParseObject,其ParseClassName为" UserLogin"。

现在,根据传递给方法的UserLoginInfo对象(loginInfo)测试并运行此代码:

var queryLogin = from login in IdentityUserLogin.Query
                 where login.ProviderKey == loginInfo.ProviderKey && login.LoginProvider == loginInfo.LoginProvider
                 select login;

var userLogin = await queryLogin.FirstOrDefaultAsync();

正如所料,userLogin为我提供了一个填充的IdentityUserLogin对象。现在我想扩展它以恢复与UserLogin相关联的ParseUser对象,该对象使用类型'指针',name' user'来自UserLogin。为了提高性能,我宁愿不使用2个单独的调用,SDK文档似乎表明它可以使用LINQ连接,但我无法通过编译阶段。这就是我所拥有的:

// Gives the following compilation error: 
// Cannot convert lambda expression to type 'string' because it 
// is not a delegate type   

var queryUser = from user in ParseUser.Query
                select user;

// See compilation errors #2/#3 referenced below.
var queryLogin = from login in IdentityUserLogin.Query
                 join user in queryUser on login.User equals user
                 where login.ProviderKey == loginInfo.ProviderKey && login.LoginProvider == loginInfo.LoginProvider
                 select login;

var userLogin = await queryLogin.FirstOrDefaultAsync();

错误#2: 类型' AnonymousType#1'不能用作类型参数' TResult'在泛型类型或方法中,Parse.ParseQueryExtensions.Join(Parse.ParseQuery,Parse.ParseQuery,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression> )&#39 ;.匿名类型#1'没有隐式参考转换。到' Parse.ParseObject'。

错误#3: 无法找到源类型' Parse.ParseQuery'的查询模式的实现。 '凡'没找到。

作为参考,IdentityUserLogin.ParseQuery定义为:

public static ParseQuery<IdentityUserLogin> Query
{
    get { return new ParseQuery<IdentityUserLogin>(); }
}

非常感谢正确的语法/方法!

0 个答案:

没有答案