繁体   English   中英

非静态方法需要目标

[英]Non static method requires a target

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 )。 我也尝试检查currUser null控件。

我错过了什么?

错误是:

非静态方法需要目标

您应首先测试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语句更改为:

return (validateUser.FirstOrDefault() != null);

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

“非静态方法需要目标”意味着范围内的某些对象为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;
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM