0

我已经为一个离开公司并且对 MVC 不太熟悉的开发人员接手了一个项目。运行程序时,我收到“可空对象必须有值”的错误。

表格中的一个单元格由以下内容填充:

<td>@SRA_Acquire.Models.Auth.Users.GetUserNameById((int)issue.UserID)</td>

由以下内容填充:

public static string GetUserNameById(int userId)
{
    return GetUserById(userId).Name;
}

internal static UserProfile GetUserById(int userId)
{
    var db = new UsersContext();
    return db.UserProfiles.Where(c => c.UserId == userId).Single();
}

单步执行代码时,userId 是正确的,但我收到错误说明c.UserID does not exist in the current context

但是在我的AccountModels.cs它显示

public class UsersContext : DbContext
{
    public UsersContext()
        : base("AuthContext")
    {
    }

    public DbSet<UserProfile> UserProfiles { get; set; }
    public DbSet<UsersInRoles> UsersInRoles { get; set; }
    public DbSet<Roles> Roles { get; set; }
}

[Table("UserProfile", Schema = "dbo")]
public class UserProfile 
{
    [Key]
    [DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
    public int UserId { get; set; }
    public string UserName { get; set; }
    public string Name { get; set; }
    public string Email { get; set; }
    public bool IsLockedOut { get; set; }
}

我错过了什么?

4

1 回答 1

0

尝试更新c.UserId == userId条件以避免此类错误:

c => c.UserId != null && c.UserId == userId
于 2013-08-28T14:21:25.620 回答