如果我在像这样只需要该 Photos 集合中的第一个元素时发送名为 Property 的对象,该对象具有 Photos 集合,那么这种方法是否会加载集合中的所有元素而不是 assoc。只有我想要的第一个,或者这种方法是我需要的,首先从集合中加载。
public PropertyHPViewModel(Property x)
{
Id = x.Id;
Created = x.Created;
Title = x.Title;
Photo = x.Photos.First();
}
从分析器生成的 Sql
SELECT photos0_.PropertyId as PropertyId1_,
photos0_.Id as Id1_,
photos0_.Id as Id1_0_,
photos0_.ImageData as ImageData1_0_,
photos0_.ImageMimeType as ImageMim3_1_0_,
photos0_.PropertyId as PropertyId1_0_
FROM Photo photos0_
WHERE photos0_.PropertyId = 129 /* @p0 */
更新 了,因为我有 20 个这样生成的查询,它们都只在最后一行有所不同
WHERE photos0_.PropertyId = xxx /* @p0 */
其中数字是照片 id 对象,我必须补充一点,根据 nhibernate 分析器,我对此查询有 SELECT N+1 ALERT。