我遇到了 NHibernate 的问题(SQL Server 2000,如果重要的话)。
即使我指定 500,NHibernate 似乎使用等于 10 的批量大小(但如果我指定小于 10 的大小,比如 3 - 它使用 3)
<bag name="RiskTypes" table="CalculationQuery" lazy="false" batch-size="50">
<key column="CalculationID"></key>
<many-to-many class="RiskType" column="RiskType"></many-to-many>
</bag>
我正在加载 11 个项目,并在 NHProf 中看到它执行两个查询:
选择 risktypes0_.CalculationID 作为 Calculat1_1_, risktypes0_.RiskType 作为 RiskType1_, risktype1_.RiskTypeID 为 RiskTypeID5_0_, risktype1_.RiskTypeName 作为 RiskType2_5_0_ FROM CalculationQuery risktypes0_ 左外连接 RiskType risktype1_ 关于 risktypes0_.RiskType = risktype1_.RiskTypeID WHERE risktypes0_.CalculationID in (373 /* @p0 */,363 /* @p1 */,364 /* @p2 */,365 /* @p3 */, 366 /* @p4 */,367 /* @p5 */,368 /* @p6 */,369 /* @p7 */, 370 /* @p8 */,371 /* @p9 */)
选择 risktypes0_.CalculationID 作为 Calculat1_1_, risktypes0_.RiskType 作为 RiskType1_, risktype1_.RiskTypeID 为 RiskTypeID5_0_, risktype1_.RiskTypeName 作为 RiskType2_5_0_ FROM CalculationQuery risktypes0_ 左外连接 RiskType risktype1_ 关于 risktypes0_.RiskType = risktype1_.RiskTypeID WHERE risktypes0_.CalculationID = 372 /* @p0 */