C# ASP.NET Core 2:2错误无法强制转换类型为';System.Int32';输入';System.String';。关于登录过程
我正在努力解决这个错误,突出显示在:C# ASP.NET Core 2:2错误无法强制转换类型为';System.Int32';输入';System.String';。关于登录过程,c#,asp.net-mvc,asp.net-core,C#,Asp.net Mvc,Asp.net Core,我正在努力解决这个错误,突出显示在: var account=db.Accounts.SingleOrDefault(a=>a.Username.Equals(Username)) 我收到的错误消息是: 无法将“System.Int32”类型的对象强制转换为“System.String”类型 我的数据类型不是int。我想知道Int32部分来自哪里。下面是我的代码: [HttpPost] [路线(“流程”)] 公共IActionResult进程(字符串用户名、字符串密码) { var帐户=proc
var account=db.Accounts.SingleOrDefault(a=>a.Username.Equals(Username))代码>
我收到的错误消息是:
无法将“System.Int32”类型的对象强制转换为“System.String”类型
我的数据类型不是int
。我想知道Int32
部分来自哪里。下面是我的代码:
[HttpPost]
[路线(“流程”)]
公共IActionResult进程(字符串用户名、字符串密码)
{
var帐户=processLogn(用户名、密码);
如果(帐户!=null)
{
securityManager.sign(this.HttpContext,account);
返回RedirectToAction(“索引”、“仪表板”,new{area=“admin”});
//返回视图(“索引”);
}
其他的
{
ViewBag.error=“无效帐户”;
返回视图(“索引”);
}
}
私有帐户processLogn(字符串用户名、字符串密码)
{
var account=db.Accounts.SingleOrDefault(a=>a.Username.Equals(Username));
如果(帐户!=null)
{
if(BCrypt.Net.BCrypt.Verify(密码,account.password))
{
返回帐户;
}
}
返回null;
}
这是我的班级:
[表(“账户”)]
公共类帐户{
公共帐户()
{
RoleAccounts=新HashSet();
}
[关键]
公共字符串Id{get;set;}
公共字符串用户名{get;set;}
公共字符串密码{get;set;}
公共字符串全名{get;set;}
公共字符串电子邮件{get;set;}
公共布尔状态{get;set;}
公共虚拟ICollection角色计数{get;set;}
}
表说明:
Username varchar(250) Checked
问题可能是数据库中的Id
列的类型为int
,并且在您的Account
类中,它有一个类型为string
,您能否提供Account
的类定义和Accounts
的基础表定义?似乎您的表定义为Username
为数字类型。