【发布时间】:2010-11-18 20:28:59
【问题描述】:
当使用 NHibernate 执行查询时,如果将批处理大小设置为大于实际返回的结果,则似乎不尊重批处理大小。
我正在使用最新版本的 NHibernate 2.1.0.4000 和 Linq to NHibernate 的 GA。我有一个类似于 Order 的对象结构,它有一个 OrderLine 集合。 OrderLines 已被定义为具有以下 xml 的包:
<bag name="OrderLines" access="field.camelcase" table="MyDatabase.OrderLines" lazy="true" batch-size="50">
<key column="OrderId"/>
<one-to-many class="OrderLine"/>
</bag>
如果我查询 Orders 并返回 50 个结果,它会在单个查询中正确选择所有 OrderLines,但如果我返回的结果少于 50 个,它似乎不遵守定义的批量大小。
例如如果我得到 40 个结果而不是 50 个如果执行 3 个批量大小为 25、12 和 3 的查询
这看起来像是在尝试猜测要使用的正确批量大小(即,它先是批量大小的 1/2,然后是其余部分的 1/2,等等)。我希望它始终执行 50 的批量大小,如果数量较少,则将批量大小尽可能大,在本例中为 40 的批量大小。
如何让 NHibernate 尊重我在所有情况下定义的批量大小?
【问题讨论】:
标签: nhibernate