WCF服务LINQ查询以登录用户

时间:2013-04-28 11:13:50

标签: c# wcf linq ienumerable

我坚持使用LINQ查询在我的应用程序中登录用户。我想检查名为tbluser的SQL Azure表,并且我使用生成的LINQ DataClasses来查询我的SQL azure表。我已成功查询LINQ表tblAsset以传递查询,其中*或只需要一列。

我理解,要登录用户,我需要使用WHERE检查用户名和密码,但我无法解决此问题。

我尝试过以下代码:

 public List<User> SigninUser(int uname, string pass)
{
    DataClasses1DataContext context = new DataClasses1DataContext();
    IEnumerable<User> result = (from a in context.Users
                  where (a.UserID==uname && a.Password==pass)
                  select new 
                  { 
                      a.UserID, 
                      a.Password
                  }).ToList()
                  ;
    return result.ToList();

}

但这会返回错误 -

Cannot implicitly convert type 'System.Collections.Generic.List<AnonymousType#1>' to 'System.Collections.Generic.IEnumerable<MyService.User>'. An explicit conversion exists (are you missing a cast?)

1 个答案:

答案 0 :(得分:1)

使用以下命令创建匿名类型:

new 
{ 
    a.UserID, 
    a.Password
}

但您的结果类型为:IEnumerable<User>

而不是IEnumerable<User>使用:

 IEnumerable<User> result = (from a in context.Users
                      where (a.UserID==uname && a.Password==pass)
                      select a).ToList();

甚至更好:

 IEnumerable<User> result = context.Users.Where(a => a.UserID==uname && a.Password==pass);

(感谢justMe和Navik)