代码之家  ›  专栏  ›  技术社区  ›  Mike

从几个查询填充DTO

  •  1
  • Mike  · 技术社区  · 15 年前

    我有一个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不支持多个标准。注意,我加入了我的大部分数据。当我需要用一组完整的新条件查询数据时,问题就来了。

    1 回复  |  直到 15 年前
        1
  •  2
  •   Tony Andrews    15 年前

    不如创建一个连接数据的视图,一次性提供40个属性,并将您的DTO建立在这个视图上—无论DTO是什么;-)