C# 数据库项目中linq查询的NullReferenceException

C# 数据库项目中linq查询的NullReferenceException,c#,database,linq,ado.net-entity-data-model,C#,Database,Linq,Ado.net Entity Data Model,我把头撞在墙上,试图弄明白为什么当我单击按钮时,一个NullReferenceException会说我的dbcontext在linq查询中为null!!!我不明白,因为当表单加载医院实体时,我会填充dbcontext(见下文): 如果dbcontext!=空。。。但是当表单第一次加载时,它是null,因此if块中的代码永远不会执行 dbcontext = new HospitalDatabase.HospitalEntities(); 你必须修改你的逻辑。也许像这样简单的事情,在处理对象之前检

我把头撞在墙上,试图弄明白为什么当我单击按钮时,一个NullReferenceException会说我的dbcontext在linq查询中为null!!!我不明白,因为当表单加载医院实体时,我会填充dbcontext(见下文):


如果
dbcontext!=空
。。。但是当表单第一次加载时,它是
null
,因此
if
块中的代码永远不会执行

dbcontext = new HospitalDatabase.HospitalEntities();
你必须修改你的逻辑。也许像这样简单的事情,在处理对象之前检查值,但不管如何运行其余的代码

//Dispose of old dbcontext, if any
if (dbcontext != null)
    dbcontext.Dispose();

//create new dbcontext so we can reorder records based on edits
dbcontext = new HospitalDatabase.HospitalEntities();

请注意,我不能评论这样处理和创建一个新实体是否是一个好的做法——我对这项技术还不够熟悉。我相信是这样。

var query=来自dbcontext中的患者。患者所在的患者。Pat_Last_Name。开始时使用(textBox1.Text)orderby patient.Pat_Last_Name,patient.Pat_First_Name选择患者;上述评论就是发生这种例外的地方。当我试图储蓄时,它也会发生。由于某种原因,DbContext仍然为null!成功了!我甚至没有注意到我在if语句中这样做(将括号放在错误的位置!),但是我有另一个例外……当我进入以下内容时,我得到了一个EntityCommandException:dbcontext.Patients.OrderBy(Patients=>Patients.Pat_Last_Name)。ThenBy(Patients=>Patients.Pat_First_Name)。Load();
//Dispose of old dbcontext, if any
if (dbcontext != null)
    dbcontext.Dispose();

//create new dbcontext so we can reorder records based on edits
dbcontext = new HospitalDatabase.HospitalEntities();