Dapper verschachtelte Objektabfrage - nicht alle Eigenschaften auffüllen

8

Ich versuche, eine flache Ergebnismenge in ein geschachteltes Objekt mit Dapper.NET zurückzubringen (EmergingIssue enthält sowohl Reason- als auch Status-Objekte), aber die Abfrage füllt nicht alle Spalten. Siehe POCOs unten:

%Vor%

Unten ist der Code, in dem ich versuche, die Ergebnismenge auf meine EmergingIssue-Klasse zu projizieren (übernommen von einer ähnlichen StackOverflow-Frage):

%Vor%

Dieses Ergebnis gibt mehrere Felder zurück, aber UserComment, PlannerID, DateItemAdded und einige andere Felder sind nicht ausgefüllt. Es scheint offensichtlich, dass das Problem in der Linq-Funktion liegt, die die Daten projiziert, aber ich bin nicht vertraut genug mit der Syntax, um zu verstehen, wie man es löst.

Gibt es darüber hinaus eine wertvolle Linq-Ressource, um mehr über erweiterte Funktionen zu erfahren? Ich verwende häufig .Where(x => x.StringValue == "Test") (und andere ähnliche, einfache) Funktionen, aber ich übergebe Funktionen, die ich oben versuche, nicht oft.

    
TimeBomb006 01.05.2015, 19:16
quelle

2 Antworten

7

Das Problem ist hier:

splitOn: "ReasonID, StatusID"

Sie können in der Zeichenfolge splitOn keine Leerzeichen einfügen, da der Dapper diese Zeichenfolge einfach durch Kommas aufteilt - sie sucht nach einer Spalte namens " StatusId" (mit einem Leerzeichen am Anfang)

    
Adassko 04.05.2015, 12:42
quelle
1

Anstatt eine Abfrage mithilfe von StringBuilder zu erstellen, versuchen Sie nicht, SqlBuilder class zu verwenden. Es wird Ihnen aus meiner Sicht eine besser lesbare Abfrage erstellen.

Ich finde auch heraus, dass dieser Typ eine großartige Erweiterung davon erstellt. Ссылка

    
Martin Valentino 10.05.2015 12:48
quelle

Tags und Links