[英]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.