簡體   English   中英

ORMLite / Servicestack:一起加入多個嵌套表

[英]ORMLite/Servicestack: Joining Multiple Nested Tables Together

我認為這應該很容易,而且我不確定我是否只是遺漏了某些東西或者當前ServiceStack / ORMLite是否缺少此功能。 我有一個看起來像這樣的表結構:

[Table Foo]
Id: GUID
... Fields

[Table Bar]
Id: GUID
FooId: GUID (references Foo.Id)
... Fields

[Table Baz]
Id: GUID
BarId: GUID (References Bar.Id)
... Fields

我想要做的是在一次返回中返回一個封裝所有Foo,Bar和Baz的對象,這樣我就可以高效地處理我的數據庫請求。 就像是:

SELECT *
FROM foo, bar, baz
WHERE foo.Id = bar.FooId && bar.Id = baz.BarId

我知道我想如何在SQL中編寫它,但我正在努力如何在ORMLite / Servicestack中編寫它。 Mythz的這個答案似乎指出這不是ServiceStack中的一個東西,但這個答案也是幾年前的答案,所以我想知道在此期間發生了什么變化。 我可以迭代遍歷對象並手動加載第二個連接,因為我真的只需要來自最后一個嵌套表的單個字段,但是當我真的應該能夠執行所有操作時,仍然感覺要執行太多的數據庫調用在一個電話中,但我找不到任何關於如何的文件。

您可以使用OrmLite的SelectMulti API ,例如:

var q = db.From<Foo>()
    .Join<Foo, Bar>()
    .Join<Bar, Baz>();

var results = db.SelectMulti<Foo, Bar, Baz>(q);

foreach (var tuple in results)
{
    Foo foo = tuple.Item1;
    Bar bar = tuple.Item2;
    Baz baz = tuple.Item3;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM