Kul*_*han 0 c# sql entity-framework asp.net-mvc-4
我正在使用EF使用以下代码查询数据库:
int UserId = db.StudentModel.FirstOrDefault(c => c.UserName == certUserName).UserId;
Run Code Online (Sandbox Code Playgroud)
然而,每当我尝试使用它时,该死的东西崩溃并给我一个空引用异常.任何想法为什么?我知道命令格式正确,但我不确定在哪里检查错误; 我对MVC范例很陌生.
这是它引用的模型的代码,如果它有所不同:
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
namespace IronGriffin.Models
{
public class StudentModel
{
[Key]
public int UserId { get; set; }
public string UserName { get; set; }
public virtual ICollection<Completion> Completions { get; set; }
}
}
Run Code Online (Sandbox Code Playgroud)
调用FirstOrDefault()最有可能返回null(因为找不到记录),因此当您尝试访问时UserId会得到该异常.
首先选择您想要的字段,然后执行FirstOrDefault:
int? UserId = db.StudentModel
.Where(c => c.UserName == certUserName)
.Select(c => c.UserId)
.FirstOrDefault();
Run Code Online (Sandbox Code Playgroud)
现在,如果没有找到记录,UserId将是null你不会得到那个特定的错误.