Frage

Wie man Select Daten verwenden Service.OrmLite aus zwei Tischen JOINohne ein weiteres Poco (Coal+Data) nur für diesen Zweck zu erstellen.

Ich habe Poco für Coal und für CoalData wie:

class Coal {
    // PK
    public long Id {get; set;}
    public string Name {get; set;}
}

class CoalData {
    // FK
    public long Id {get; set;}
    public int Prop1 {get; set;}
    ....
}

Bei Dapper ist das ganz einfach wie:

var personWithAddress = connection
    .Query<Person, Address, Extra, Tuple<Person, Address, Extra>>
    (sql, (p, a, e) => Tuple.Create(p, a, e), splitOn: "AddressId,Id").First();
War es hilfreich?

Lösung

ServiceStack.OrmLite unterstützt nicht die von Ihnen vorgeschlagene Verknüpfung von zwei oder mehr Tabellen.Derzeit werden nur einfache Ausdrücke unterstützt und für Joins wird empfohlen, auf unformatierte SQL-Abfragen zurückzugreifen. Siehe hier für OrmLite-Funktionalität.

Für alles, was komplexer ist (z. B.(Abfragen mit Tabellenverknüpfungen) können Sie immer noch problemlos auf unformatierte SQL-Abfragen zurückgreifen, wie unten gezeigt.

Allerdings wird ServiceStack.OrmLite in naher Zukunft wahrscheinlich eine bessere Unterstützung für Joins erhalten, da dies die Spitze ist Offene Funktionsanfrage, jedoch im Rahmen des kommerziellen ServiceStack-Angebots.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top