Wenn ich den folgenden Code ausführen, bekomme ich eine NullReferenceException sagen, dass eine Objektreferenz nicht auf eine Instanz des Objekts festgelegt ist. Ich habe erfolgreich mit Dapper mit weniger komplexen Objekten aber das gleiche Format eingefügt, so bin ich mir nicht sicher, was ich falsch mache.NullReferenceException beim Einfügen mit Dapper
public void Foo(IEnumerable<FogbugzCase> cases)
{
// using a singleton for the SqlConnection
using (SqlConnection conn = CreateConnection())
{
foreach (FogbugzCase fogbugzCase in cases)
{
conn.Execute("INSERT INTO fogbugz.Cases(CaseId, Title, ProjectId, CategoryId, Root, MilestoneId, Priority, Status, EstimatedHours, ElapsedHours, AssignedTo, ResolvedBy, IsResolved, IsOpen, Opened, Resolved, Uri, ResolveUri, OutlineUri, SpecUri, ParentId, Backlog) VALUES(@BugId, @Title, @ProjectId, @CategoryId, @RootId, @MilestoneId, @Priority, @StatusId, @EstimatedHours, @ElapsedHours, @PersonAssignedToId, @PersonResolvedById, @IsResolved, @IsOpen, @Opened, @Resolved, @Uri, @ResolveUri, @OutlineUri, @Spec, @ParentId, @Backlog);", new {BugId = fogbugzCase.BugId, Title = fogbugzCase.Title, ProjectId = fogbugzCase.Project.Id, CategoryId = fogbugzCase.Category.Id, RootId = fogbugzCase.Root, MilestoneId = fogbugzCase.Milestone.Id, Priority = fogbugzCase.Priority, StatusId = fogbugzCase.Status.Id, EstimatedHours = fogbugzCase.EstimatedHours, ElapsedHours = fogbugzCase.ElapsedHours, PersonAssignedToId = fogbugzCase.PersonAssignedTo.Id, PersonResolvedById = fogbugzCase.PersonResolvedBy.Id, IsResolved = fogbugzCase.IsResolved, IsOpen = fogbugzCase.IsOpen, Opened = fogbugzCase.Opened, Resolved = fogbugzCase.Resolved, Uri = fogbugzCase.Uri, OutlineUri = fogbugzCase.OutlineUri, Spec = fogbugzCase.Spec, ParentId = fogbugzCase.ParentId, Backlog = fogbugzCase.Backlog});
}
}
}
Ich versuchte zunächst, in fogbugzCase
anstelle der anonymen Aufgabe nur auf dem Durch die einfachere Art und Weise zu tun, aber in einer anderen Ausnahme über CategoryId geführt.
Wer sieht, was ich vermisse?
Setzen Sie einen Haltepunkt und überprüfen Sie alle Ihre Objekte. Wenn ich raten müsste, basierend auf dem, was Sie über die CategoryId gesagt haben, kann "fogbugzCase.Category" null sein. Aber überprüfe alles. Wenn Sie auf eine Eigenschaft einer Nullreferenz zugreifen, erhalten Sie eine 'NullReferenceException'. – zimdanen
@zimdanen thx, da war etwas null - nur versuchen, einen Weg zu finden, das jetzt zu überprüfen. –
Fast alle Fälle von 'NullReferenceException' sind identisch. Für einige Hinweise siehe "[Was ist eine NullReferenceException in .NET?] (Http://stackoverflow.com/questions/4660142/what-is-a-nullreferenceexception-in-net)". –