2017-05-20 2 views
0

Ich habe eine LINQ-Anweisung, die 110 Datensätze zurück zu meiner Ansicht zurückgeben soll. Wenn ich SQL Server überprüfte, enthält meine Tabelle Datensätze, aber wenn ich versuche, diese Datensätze basierend auf einer ID abzurufen, wird @foreach(var item in Model) einen Nullreferenzfehler verursachen. Jede Hilfe wäre willkommen.Null Ausnahme in LINQ-Anweisung, aber gibt Ergebnisse in LINQPAD

LINQPad --Returns 110 Datensätze (RPT ist das Schema)

RPT.Team_History.OrderByDescending (r => r.DateOfAction).Where(r => r.MgrID ==212) 

-Controller-Code (DB Erster Ansatz verwendet. RPT-Schema gelöscht, wenn VS-Modelle generiert)

public PartialViewResult _TeamTransitionDisplay() 
    { 
     var mgrID = 212; 
     IEnumerable<TeamHistoryViewModel> teamHistory; 
     teamHistory = db.Team_History 
        .Where(x => x.MgrID == @mgrID) 
        .Select(x => new TeamHistoryViewModel 
        { 
         DateOfAction = x.ActionDate, 
         DeptID = x.DeptID, 
         Operation = x.Operation, 
         StartDate = x.StartDate, 
         AStartDate = x.AStartDate, 
         FStartDate = x.FStartDate 
        }).ToList(); 

     return PartialView("_TeamDisplay", teamHistory); 
    } 

[NullReferenceException: Objektverweis nicht auf eine Instanz eines Objekts festgelegt.]

Beratung wäre willkommen.

+0

Was ist die vollständige Ausnahme? Sind Sie sicher, dass db zu diesem Zeitpunkt nicht null ist? –

+0

Mögliches Duplikat von [Was ist eine NullReferenceException, und wie behebe ich sie?] (Http://stackoverflow.com/questions/4660142/what-is-a-nullreferenceexception-and-how-do-i-fix-it) –

Antwort

0

Ich denke, wenn es versucht, eine Ihrer Modellwerte zu bekommen, es null sein könnte, so dass es wirft den Fehler Sie können diese versuchen, für Nullable-Eigenschaften hinzufügen zu überprüfen, ob diese null ist, nur für Nullable-Eigenschaften , ich fügte hinzu für alle, weil ich nicht weiß, die sind Nullable

teamHistory = db.Team_History 
       .Where(x => x.MgrID == @mgrID) 
       .Select(x => new TeamHistoryViewModel 
       { 
        DateOfAction = (x.ActionDate != null ? x.ActionDate : something here when null), 
        DeptID = (x.DeptID!= null ? x.DeptID: 0), 
        Operation = (x.Operation!= null ? x.Operation: "operation"), 
        StartDate = (x.StartDate!= null ? x.StartDate: DateTime.MinValue), 
        AStartDate = (x.AStartDate != null ? x.AStartDate : DateTime.MinValue), 
        FStartDate = (x.FStartDate != null ? x.FStartDate : DateTime.MinValue) 
       }).ToList(); 
Verwandte Themen