数据库中的某些属性具有值时为空

时间:2019-05-31 12:52:47

标签: c# .net linq

我正在尝试使工作具有登录功能,但是对于某些用户Linq,如果他们在数据库中具有正确的值,则将某些值返回为null。对于其他用户,一切正常。

这是我的linq

public Clientes Login(string username) 
{
    DataClasses1DataContext db = new DataClasses1DataContext();
    var query = from c in db.Clientes
                where c.NroDocumento == username
                select c;
    return query.FirstOrDefault();
}

然后在服务层中,我有以下内容:

Clientes o = userData.Login(username);
return (o != null && password == o.Password) 
    ? new UserEntity(o.CodCliente, o.Email, o.Empresa) 
    : null;

但是,当我调试时,对于某些用户,我可以看到属性o.Password有一个值,而对于另一些用户,它显示为null

用户是由其他系统创建的,所以我不知道这是否会产生影响,但是当我直接在SQL Server中运行Select时,两个用户都有一个密码,因此我不知道这有什么区别使Linq返回null。

这是模型的图像(对不起,西班牙语)

enter image description here

1 个答案:

答案 0 :(得分:1)

根据注释,看起来好像有重复项,但是其中一些没有密码。在某些情况下,由于您使用的是“ FirstOrDefault”,因此无需密码即可提取该密码。