InvalidOperationException:“对象”属性 “ChatMessage.UserName”无法映射到数据库类型 'nvarchar(max)' 因为数据库提供程序不支持映射 “object”属性到“nvarchar(max)”列
以上是我尝试注册后在页面上显示的错误消息
我尝试查找问题,但找不到解决方案,因为服务器正在寻找 nvarchar 而不是对象来存储为用户名。
我相信我接受输入的方式是正确的,但如果不是,那么这可能就是问题所在。以下是我如何从用户那里获取输入。
<div class="form-floating mb-3">
<input asp-for="Input.UserName" class="form-control" placeholder="UserName" />
<label asp-for="Input.UserName">User Name</label>
</div>
这是我说它应该是我的注册脚本中的字符串的一个字段
public string? UserName { get; set; } = string.Empty;
if (ModelState.IsValid)
{
var user = new User
{
UserName = Input.UserName,
Email = Input.Email,
PasswordHash = HashPassword(Input.Password)
};
_context.Users.Add(user);
我知道这并不多,但如果我能找到可能出现问题的线索,那会有很大帮助
我还有这部分,应该可以帮助存储用户下次登录时的信息
public class User
{
public int UserID { get; set; }
public string UserName { get; set; }
public string Email { get; set; }
public string PasswordHash { get; set; }
public DateTime CreatedAt { get; set; }
}
我想通了,我决定在代码搜索中搜索UserName,发现罪魁祸首是一个与问题不接近的UserName,它位于一个用于另一个功能的脚本中