非静态方法需要一个目标
本文关键字:一个 目标 静态方法 | 更新日期: 2023-09-27 18:33:28
private PMS_USERS currUser;
private bool validateUserName()
{
dbContext = new PmsEntities();
var validateUser = dbContext.PMS_USERS.Where(p=> p.LOGICALREF != currUser.LOGICALREF).Where(p=> p.USERNAME == currUser.USERNAME);
return !validateUser.Any();
}
你好我在验证新用户注册表单时遇到错误。
我的PMS_USERS
表没有记录(null
)。我还尝试检查null
控件以获取currUser
。
我错过了什么?
错误是 :
非静态方法需要目标
你应该首先测试currUser是否为null,以及你的dbContext。
if (currUser == null) return false;
if (dbContext == null) throw new Exception ("The dbContext has not been set");
其次,您可以像 yhat 一样简化查询:
var validateUser = dbContext.PMS_USERS.Where(p=> p.LOGICALREF != currUser.LOGICALREF && p.USERNAME == currUser.USERNAME);
然后将返回语句更改为:
return (validateUser.FirstOrDefault() != null);
您也可以使用 FirstOrDefault 的 SingleOrDefault 语句,如果您想确保只有一个用户与您的条件相对应。
"非静态方法需要一个目标"意味着作用域内的某个对象被null
。
尝试检查上下文和 var 结果值:
dbContext = new PmsEntities();
if (dbContext != null && currUser != null)
{
var validateUser = dbContext.PMS_USERS.Where(p=> p.LOGICALREF != currUser.LOGICALREF && p.USERNAME == currUser.USERNAME);
if (validateUser !=null)
{
return !validateUser.Any();
}
else
return null;
}
检查一下并告诉我们您是否有相同的例外情况。
使用
private PMS_USERS currUser;
private bool validateUserName()
{
dbContext = new PmsEntities();
return PMS_USERS != null
? var validateUser = dbContext.PMS_USERS.Where(p=> p.LOGICALREF != currUser.LOGICALREF).Where(p=> p.USERNAME == currUser.USERNAME).Any()
: false;
}