Vb.net 实体框架空引用异常

Vb.net 实体框架空引用异常,vb.net,entity-framework,nullreferenceexception,Vb.net,Entity Framework,Nullreferenceexception,我看到了其他类似的问题,但我无法应用其他解决方案 这是密码 transazerror.data是一个可为空的varchar字段是的,它不是日期时间,它还包含时间,因此我使用padleft仅获取dd MM yyyy格式的日期 我想要的是选择所有data=today的记录,因此errorivar应该是一个记录列表,但上面的代码返回 Nullreferenceexception 我不知道为什么 我用的是EF6 谢谢你的提示 例外情况详情: 编辑: 我试图使用db的另一个字段,它是一个日期字段,设置为n

我看到了其他类似的问题,但我无法应用其他解决方案

这是密码

transazerror.data是一个可为空的varchar字段是的,它不是日期时间,它还包含时间,因此我使用padleft仅获取dd MM yyyy格式的日期

我想要的是选择所有data=today的记录,因此errorivar应该是一个记录列表,但上面的代码返回

Nullreferenceexception

我不知道为什么

我用的是EF6

谢谢你的提示

例外情况详情:

编辑: 我试图使用db的另一个字段,它是一个日期字段,设置为nullable=false,即使这样,我也会得到nullreference异常。。。 我将问题转过来:如何使用实体框架获取记录列表?

您可以首先检查where语句上的transazerror.data是否为null

您可以使用String.IsNullOrEmpty方法

像这样

既然您说transazeror.DATA是可空的,那么假设您在其中一条记录中有一个空值。现在,当您尝试在NULL上执行PadLeft时,它将抛出您的错误


我建议的解决方案是在LINQ查询中执行PadLeft之前,首先检查t.DATA是否为null,如果不为null,则执行PadLeft。

Dim errori=db.transazeror.WhereFunctiont NOT String.IsNullOrEmptyt.DATA和t.DATA.PadLeft10=dataQuery仍然返回null引用,Dim errori=db.transazeror.WhereFunctiont NOT String.IsNullOrEmptyt.DATA除外,它抛出了一个错误你能检查db.TRANSAZERROR对象是否存在吗?EF模型上的transazerror.data类型是字符串吗?是的,它存在并且transazerror.data是字符串类型。EF模型上的nullable属性设置为NoneI我还尝试使用另一个datetime字段,使用date.today而不是dataquery,但我得到了相同的错误。即使另一个字段为nullable=FalseF6不支持PadLeft方法,异常也会有所不同。这听起来更像是EF核心客户机评估异常。您最好包含异常堆栈跟踪,否则问题将像通常的NRE重复一样关闭。问题似乎在于您的代码db变量为null,投票关闭。我尝试了在db.transazeror中使用此Dim errori=From errors,其中errors.datascalio=Date.Today.ToList,但仍然得到了NRE。Datascarico不可为null,它是一种日期类型
Dim da1 As DateTime = DateTime.ParseExact(Date.Today, "dd/MM/yyyy", CultureInfo.InvariantCulture)
Dim dataQuery As String = da1.ToString("dd-MM-yyyy", CultureInfo.InvariantCulture).PadLeft(10)
Dim errori = db.TRANSAZERROR.Where(Function(t) t.DATA.PadLeft(10) = dataQuery)
System.NullReferenceException was unhandled
  HResult=-2147467261
  Message=Riferimento a un oggetto non impostato su un'istanza di oggetto.
  Source=transazErrorLog
  StackTrace:
       in transazErrorLog.Form1.log() in I:\Documenti\Vs15_Projects\transazErrorLog\transazErrorLog\Form1.vb:riga 22
       in transazErrorLog.Form1.Form1_Load(Object sender, EventArgs e) in I:\Documenti\Vs15_Projects\transazErrorLog\transazErrorLog\Form1.vb:riga 9
       in System.EventHandler.Invoke(Object sender, EventArgs e)
       in System.Windows.Forms.Form.OnLoad(EventArgs e)
       in System.Windows.Forms.Form.OnCreateControl()
       in System.Windows.Forms.Control.CreateControl(Boolean fIgnoreVisible)
       in System.Windows.Forms.Control.CreateControl()
       in System.Windows.Forms.Control.WmShowWindow(Message& m)
       in System.Windows.Forms.Control.WndProc(Message& m)
       in System.Windows.Forms.Form.WmShowWindow(Message& m)
       in System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
  InnerException: 
Not String.IsNullOrEmpty(t.DATA) AND t.DATA.PadLeft(10) = dataQuery