Ich habe ein Place-Objekt.Dapper.net - wie man viele zu viele Beziehungen in einem einzigen Befehl abbildet
Es kann viele Tags damit verbunden haben.
Tags können mit vielen Orten verknüpft werden.
(Obwohl dies eine Beziehung viele zu viele ist - ich denke konzeptionell kann es auch eine eins zu viele sein - eine Sammlung von Objekten - mit jedem Objekt enthält eine Sammlung von Objekten).
Jeder Platz Objekt verfügt über eine Liste Sammlung mit ihm verbunden:
public class Place
{
public Guid Id { get; set; }
public string PlaceName { get; set; }
...
public List<Tag> Tags { get; set; }
}
public class Tag
{
public Guid Id { get; set; }
public string TagName { get; set; }
}
SQL, die von vielen zu vielen Beziehung erforderlichen Daten wählt:
select * from place p
inner join tagplace tp on tp.placeid = p.id
inner join tag t on t.id = tp.tagid
order by placename
Kann ich all dies in einem einzigen Dapper Karte Befehl (oder zumindest nicht n + 1 Befehle)? Die Github-Dokumentation deckt eine zu viele Beziehungen ab - aber nicht viele zu viele.
(Der Grund, warum ich dies tun muss - ist, weil ich ein Raster aller Orte ausgeben möchte, und ich möchte eine Spalte eine kommagetrennte Liste von Tags (Ich werde einen Helper, der eine Sammlung von Tags dauert erstellen ., und gibt eine durch Kommata getrennte Zeichenfolge)
ich habe eine ähnliche Frage gesehen, wo Slapper.AutoMapper empfohlen:
How do I write one to many query in Dapper.Net?
würde ich lieber vermeiden, mit zusätzlichen Bibliotheken wenn möglich - aber ich denke, es kann sein, hier erforderlich?
Was ist der beste Weg, dies zu erreichen?