我有40多个属性的DTO。但是为了填充所有属性,我需要执行4个单独的查询。我的第一个查询是负责获取基本信息。对于返回的每一行,我根据主查询中给出的id(N + 1问题)再运行3次查询。我可以设置使用急切加载,但后来我加载了数千个我不需要的对象。
我应该拆分我的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不支持多标准。请注意,我正在加入大部分数据。当我需要使用一组完整的新标准查询数据时,就会出现问题。
答案 0 :(得分:2)
如何创建一个连接数据的VIEW,一次性提供40个属性,并以DTO为基础 - 无论DTO是什么; - )