0

我坚持使用 LINQ 查询在我的应用程序中登录用户。我想检查名为的 SQL Azure 表tbluser,并且我正在使用生成的 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?)

4

1 回答 1

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)

于 2013-04-28T11:19:43.527 回答