2009-12-08 36 views
1

最近我運行在一個奇怪的NullReferenceException。它偶爾會彈出,爲什麼它很難爲我調試。今天又發生了,我想現在修復它,我有錯誤。對象引用沒有設置,而SQL管理器說它是

我有以下設置:

相關代碼的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爲空給下面的錯誤,而當模型本身加載了來自(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 Manager屏幕顯示這樣的信息:

概況表:

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

個人表:

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

正如人們所看到的所有PersonIDs被設置成通常的所有鏈接應該加載?有時候情況就是這樣,但是有時候這個空引用會從不知所云的地方彈出來。我忘記了什麼嗎?我應該手動加載一些東西?

//編輯

我注意到

<%Model.PersonsReference.Load(); Model.EmploymentsReference.Load(); %> 解決了這個問題,問題是爲什麼我在這裏需要它,而不是在我的其他觀點中使用相同的方法?

回答

2

它可能與lazy loadingPersons集合有關。

+0

看起來很像它,謝謝你的鏈接,沒有看到那個。 – bastijn 2009-12-08 10:42:25

0

我注意到

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

修復了這個問題,這個問題就是爲什麼我需要在這裏,而不是整個的我的看法使用相同的方法的休息嗎?

相關問題