我正在使用c#和winforms 4.0来创建使用实体框架的lo gin表单。问题是我的逻辑是正确的。我只是有点担心返回如果它没有找到记录我添加一个空白的返回记录是正确的方式使用实体框架返回一个空记录,因为我想传递登录屏幕上的信息到主要形式。
public NaviHrUsers ValidateUser(string username,string password)
{
try{
NaviHrUsers currentUser = naviEntities.NaviHrUsers.FirstOrDefault(r => r.login == username);
if (currentUser != null)
{
return currentUser;
}
else
{
NaviHrUsers nu = new NaviHrUsers();
nu.login = "";
nu.password = "";
nu.last_login = Convert.ToDateTime("1900/01/01");
nu.last_time = "";
nu.password_last_changed = Convert.ToDateTime("1900/01/01");
return nu;
}
}
catch (Exception ex)
{
throw new EntityContextException("ValidateUser failed.", ex);
}
}
答案 0 :(得分:1)
您可能不想返回空白记录。相反,您想要返回null。此外,如果你看看Asp.Net中的Microsoft的Forms Auth,Membership.ValidateUser()方法会返回一个bool,它所做的就是验证用户,仅此而已。对于这种情况,我不会考虑将空记录作为一种良好的做法。