非静态方法需要目标

Khn*_*emu 5 c# asp.net entity-framework

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();
}
Run Code Online (Sandbox Code Playgroud)

您好,我在新用户注册表单上验证时出错.

我的PMS_USERS桌子没有记录(null).我也试过检查null控件currUser.

我错过了什么?

错误是:

非静态方法需要目标

Rom*_* Eh 8

您应首先测试currUser是否为null以及您的dbContext.

if (currUser == null) return false;
if (dbContext == null) throw new Exception ("The dbContext has not been set");
Run Code Online (Sandbox Code Playgroud)

其次,您可以像yhat一样简化查询:

 var validateUser = dbContext.PMS_USERS.Where(p=> p.LOGICALREF != currUser.LOGICALREF &&  p.USERNAME == currUser.USERNAME);
Run Code Online (Sandbox Code Playgroud)

然后将return语句更改为:

return (validateUser.FirstOrDefault() != null);
Run Code Online (Sandbox Code Playgroud)

如果您希望确保只有一个用户符合您的条件,则可以替代使用FirstOrDefault的SingleOrDefault语句insead.