在Entity框架中检查null

时间:2015-10-19 07:34:40

标签: entity-framework

string password = Infoware.Students.FirstOrDefault(x=>x.AdmissionNo == AdmissionNo && x.AdmissionNo != null).Password;

这里的学生是一张表格,其中我有AdmissionNo和Password列,如果表格中存在admissionNo,则需要获取密码。如果记录中存在admissionNo,但是如果在记录中找不到输入的admissionNo,那么此表达式将获取给定AdmissionNo的密码,然后它会抛出NullReference异常。

如何检查给定的AdmissionNo不是有效的AdmissionNO ??

3 个答案:

答案 0 :(得分:0)

你只需要以相反的方式进行测试(因为它们会快捷方式):

string password = Infoware.Students.FirstOrDefault(x=> x.AdmissionNo != null 
                                  && x.AdmissionNo == AdmissionNo ).Password;

重新阅读你的问题,问题是什么时候找不到......

所以:

string password;

var result = Infoware.Students.FirstOrDefault(x=> x.AdmissionNo != null 
                                      && x.AdmissionNo == AdmissionNo );


if (result != null) {
    password = result.Password;
}

答案 1 :(得分:0)

您可以使用if语句"

简单地检查null
if ( AdmissionNo != null )
{
  //your code
}

您还可以查看EF 5.0中引入的ObjectContextOptions.UseCSharpNullComparisonBehavior Property

答案 2 :(得分:0)

您可以使用Any:

进行检查
.Any(a => a.AdmissionNo == null)

或者使用if语句:

string user = Infoware.Students.FirstOrDefault(x=>x.AdmissionNo == AdmissionNo && x.AdmissionNo != null);
if(user  != null)
{
    password = user.Password;
}