InValidOperationException:ChatMessage.UserName 具有属性“object”而不是“String”

问题描述 投票:0回答:1

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; }
}
c# asp.net-core razor-pages
1个回答
0
投票

我想通了,我决定在代码搜索中搜索UserName,发现罪魁祸首是一个与问题不接近的UserName,它位于一个用于另一个功能的脚本中

© www.soinside.com 2019 - 2024. All rights reserved.