ORMLite / Servicestack:一起连接多个嵌套表

我认为这应该很容易,而且我不确定我是否错过了某些内容,或者当前是否缺少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;
}
链接地址: http://www.djcxy.com/p/65981.html

上一篇: ORMLite/Servicestack: Joining Multiple Nested Tables Together

下一篇: ServiceStack Ormlite Deserialize Array for In Clause