SQL 语句上的空值包括行上 SELECT 查询的结果(显示您发送的 SQL 查询和该查询的结果)

Null value on SQL statement include the result of a SELECT query on the row (show the SQL query you sent and the result from that query)

我正在做一个项目,为了在最后的步骤中使用 Identity 功能,我不得不对数据库进行一些更改并向其中添加 Identity。此外,从 IdentityDbContext 继承 DatabaContext 。在我以前的方法中,我曾经创建一个 DatabaseContext 的新对象并对其进行处理:

private DatabaseContext db = new DatabaseContext();

但是有了新的变化,当我将模型传递给 View 或应用条件输入时,它 return 是一个空值,例如下面的代码:

 public JsonResult CheckUserNameAvailability(Int32 UserCode)
    {
      
        var SearchData = db.Persons.Where(p => p.Pcode == UserCode).FirstOrDefault();////this line
        
        if (SearchData != null)
        {
            TempData["code"] = 0;

            return Json(1);
        }
        else
        {
            TempData["code"] = UserCode;
            return Json(0);
        }
    }

就行了

var SearchData = db.Persons.Where (p => p.Pcode == 用户代码).FirstOrDefault();

return错误

System.Data.SqlTypes.SqlNullValueException: 'Data is Null. This method or property cannot be called on Null values.

即使数据库不为空并且此代码过去也能正常工作。如果有人能提供一些帮助,那就太好了!

这是模特:

namespace LeaveSheet.Models
{
    public class Person
    {
        [Key]
        public Int32 Id { get; set; }
        public Int32 Pcode { get; set; }
        public string Name { get; set; }
        public string Family { get; set; }
     }
}

startup.cs

中的代码
 public void ConfigureServices(IServiceCollection services)
    {        
        services.AddDbContext<DatabaseContext>(p => p.UseSqlServer(@"Data Source =. ; Initial Catalog = LeaveSheet; Integrated Security=True;MultipleActiveResultSets=true "));          
        services.AddControllersWithViews();
        services.AddIdentity<User, Role>().AddEntityFrameworkStores<DatabaseContext>().AddDefaultTokenProviders();
    }

亲自检查ID列是否一直有值table

虽然是model中的key列,但也要检查DB中是否相同