我有几个关于ServiceStack.OrmLite的POCO参考功能的问题 .
-
当使用
Load*()
API通过引用获取POCO时,是否在内部生成并运行单个SQL查询(使用适当的JOIN)以返回POCO及其引用,或者它是否运行单独的查询(一个用于POCO,然后一个用于每个参考)? -
有没有办法让
Load*()
API接受自定义SQL查询(而不是SqlExpression),并且仍然能够自动加载引用,而不必为每个对象调用LoadReferences()
?
我正在尝试指定一个自定义SQL语句并返回一个POCO列表,其中包含预先加载的引用,希望在引擎盖下运行单个查询 .
希望有人能够提供一些见解 .
1 回答
加载引用加载 1 query 以加载主表, 1 query 加载子引用,而不管子引用有多少行 .
您可以通过查看使用
ConsoleLogFactory
时记录到控制台输出的SQL Generated来查看生成的SQL . 例如,这是一个带有控制台输出的LoadSelect
example you can run on Gistlyn:控制台输出:
在哪里可以看到2个查询,1个查询加载主表,1个查询加载Tracks子引用 .