[英]Conversion from Int to String
我有一个登录页面,该用户名是emaloyee ID,它是一个整数。 但是,要验证我的日志记录,我需要将其转换为字符串,但是它仍然会给我同样的错误。
我在这里需要帮助: var user = db.EMPLOYEEs.Where(u => u.EMP_ID == model.EMP_ID && u.EMP_PASSWORD == model.EMP_PASSWORD).FirstOrDefault();
我已经尝试了所有这些,但是仍然给我同样的错误:
string s = i.ToString();
string s = Convert.ToString(i);
string s = string.Empty + i;
string s = new StringBuilder().Append(i).ToString();
我又遇到另一个错误
serializeModel.roles = user.RoleROLE_ID; error: Cannot implicitly convert type 'int' to 'string[]'
我想怎么做呢?
这是我的代码:
[HttpPost]
public ActionResult Login(LoginModel model, string returnUrl = "")
{
if (ModelState.IsValid)
{
int modelID = int.Parse(model.EMP_ID);
var user = db.EMPLOYEEs.Where(u => u.EMP_ID == modelID && u.EMP_PASSWORD == model.EMP_PASSWORD).FirstOrDefault();
if ( user !=null)
{
var roles = db.EMPLOYEEs.Select(m => m.RoleROLE_ID).ToArray();
CustomPrincipalSerializeModel serializeModel = new CustomPrincipalSerializeModel();
serializeModel.UserId = user.EMP_ID;
serializeModel.FirstName = user.EMP_FIRST_NAME;
serializeModel.LastName = user.EMP_LAST_NAME;
serializeModel.roles = user.RoleROLE_ID;
从屏幕上我假设您应该转换u.EMP_ID
而不是model.EMP_ID
您也可以使用Int.Parse(model.EMP_ID)
为了保持可读性和效率,我将选择:
int modelID = Int.Parse(model.EMP_ID);
var user = db.EMPLOYEEs.Where(u => u.EMP_ID == modelID && u.EMP_PASSWORD == model.EMP_PASSWORD).FirstOrDefault();
首先,您只解析一次。 其次,您比较int
,这要快得多。
只需将转换从Where
子句中拉出即可:
string empID = Convert.ToString(model.EMP_ID);
var user = db.EMPLOYEEs
.Where(u => u.EMP_ID == empID && u.EMP_PASSWORD == model.EMP_PASSWORD)
.FirstOrDefault();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.