我在Angular JS Application中使用wcf服务。但我收到了预期的结果。我怀疑Linq Query或Angular Js应用程序有什么问题。这是我想要实现的,如果用户名和密码错误,该方法应该返回false并开始计数尝试。如果用户输入错误的用户名或密码4次,则帐户被锁定。否则,如果使用4次输入正确的用户名或密码,则方法应返回true,尝试计数重新设置为零..
这是我的界面。
[OperationContract]
[WebInvoke(Method = "POST",
RequestFormat = WebMessageFormat.Json,
ResponseFormat = WebMessageFormat.Json,
//BodyStyle = WebMessageBodyStyle.WrappedRequest,
UriTemplate = "/AuthenticateUser")]
bool AuthenticateUser(UserLogin userLogin );
这是方法的实现..
public bool AuthenticateUser(UserLogin userLogin)
{
using (HalifaxDatabaseEntities db = new HalifaxDatabaseEntities())
{
var attamp = from X in db.tblUsers
where X.Username==userLogin.Username&& X.Password== userLogin.Password
select X.RetryAttempts!=4;
if (attamp!=null )
{
return true;
}
else
{
return false;
}
}
}
答案 0 :(得分:0)
返回集合的linq查询(如Select
或Where
)将永远不会返回null
。只有返回单个结果的查询(例如First
或Single
)才可以。
虽然目前尚不清楚RetryAttempts
究竟是如何被改变的,但更好的方法可能是这样的:
// this will return a collection will only one result - true or false
var attamp = from X in db.tblUsers
where X.Username==userLogin.Username&& X.Password== userLogin.Password
select X.RetryAttempts!=4;
//.Single() will give you the value of the one and only result - either true or false
return attamp.Single();