【问题标题】:Object reference not set while SQL manager says it isSQL 管理器说没有设置对象引用
【发布时间】:2009-12-08 10:00:15
【问题描述】:

最近我遇到了一个奇怪的 NullReferenceException。它只是偶尔弹出,为什么很难为我调试它。今天又发生了,我想修复它现在我有错误。

我有以下设置:

带有相关代码的 asp.net 视图:

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<WerkStageNu.Profiles>" %>
<%@ Import Namespace="WerkStageNu.Helpers" %>

<div class="listing"> 
    <div class="content"> 


        <h3><%=Html.ActionLink(Model.Persons.UserName, "Details", new { id = Model.ID } )%></h3>

运行它时它告诉我 Model.Persons 为 null 并给出以下错误,而模型本身加载了来自 (SQL) 数据库的数据。我正在使用 ADO.net 实体。检索配置文件而不是使用模型会导致相同的错误。

<%=Html.ActionLink(WerkStageNu.Models.Repository.Instance.GetProfileByID(Model.ID)
.Persons.UserName, "Details", new { id = Model.ID } )%>

没有做任何好事。

一些错误图片:

debug mode http://www.bastijn.nl/zooi/model_persons.png

stack trace http://www.bastijn.nl/zooi/stacktrace.png

到目前为止,这似乎是一个正常错误,但是当我检查请求背后的数据库时,我发现该字段已填写并且链接正确。 SQL 管理器屏幕显示此信息:

配置文件表:

profiles DB http://www.bastijn.nl/zooi/profiles_sql.png

人员表:

persons DB http://www.bastijn.nl/zooi/persons_sql.png

正如我们所见,所有的 PersonID 都已设置,所以通常应该加载所有链接?有时会出现这种情况,但有时会突然出现这个空引用。我是不是忘记了什么?我应该手动加载一些东西吗?

//编辑

我注意到了

解决了这个问题,问题是为什么我在这里需要它,而不是在我的其余视图中使用相同的方法?

【问题讨论】:

    标签: asp.net sql ado.net


    【解决方案1】:

    它可能与lazy loading Persons 集合有关。

    【讨论】:

    • 看起来很像,感谢链接,没看到那个。
    【解决方案2】:

    我注意到了

    <% Model.PersonsReference.Load(); Model.EmploymentsReference.Load(); %>
    

    解决了这个问题,问题是为什么我在这里需要它,而不是在我的其余视图中使用相同的方法?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-05-05
      • 2012-12-11
      • 2016-07-14
      • 1970-01-01
      • 1970-01-01
      • 2017-05-25
      • 1970-01-01
      • 2011-03-24
      相关资源
      最近更新 更多