string password = Infoware.Students.FirstOrDefault(x=>x.AdmissionNo == AdmissionNo && x.AdmissionNo != null).Password;
这里的学生是一张表格,其中我有AdmissionNo和Password列,如果表格中存在admissionNo,则需要获取密码。如果记录中存在admissionNo,但是如果在记录中找不到输入的admissionNo,那么此表达式将获取给定AdmissionNo的密码,然后它会抛出NullReference异常。
如何检查给定的AdmissionNo不是有效的AdmissionNO ??
答案 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语句"
简单地检查nullif ( 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;
}