我有一个40+属性的DTO。但是为了填充所有属性,我需要执行4个单独的查询。我的第一个查询是负责获取基本信息。对于返回的每一行,我根据主查询给出的id再运行3个查询(N+1问题)。我可以设置使用紧急加载,但我加载了数千个我不需要的对象。
我应该分割我的DTO并为我运行的每个查询创建一个单独的DTO,然后链接,然后按id将它们绑定到一个中心DTO中吗?
我在设想这样一个最终的DTO。
public class FooDto
{
public string Foo { get; set; }
public string Bar { get; set; }
public FirstDto FirstQueryResults { get; set; }
public SecondDto SecondQueryResults { get; set; }
public ThirdDto ThirdQueryResults { get; set; }
}
有更好的办法解决这个问题吗?我在使用Oracle,而NHibernate不支持多个标准。注意,我加入了我的大部分数据。当我需要用一组完整的新条件查询数据时,问题就来了。