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