我坚持使用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?)
答案 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)