首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >向主DTO添加DTO列表

向主DTO添加DTO列表
EN

Stack Overflow用户
提问于 2013-03-09 14:52:04
回答 1查看 9.4K关注 0票数 1

我有两个DTO:

代码语言:javascript
运行
复制
public class MasterDTO
{
    public int Id { get; set; }
    public string Name { get; set; }
    public List<DetailDTO> Details { get; set; }
}

public class DetailDTO
{
    public int Id { get; set; }
    public string DetailName { get; set; }
}

此外,我还有一个功能:

代码语言:javascript
运行
复制
using (var context = new Context())
{
    var r = context.MasterData
                   .Select(d => new MasterDTO
                   {
                       Id = d.Id,
                       Name = d.Name,
                   }
}

我也需要填写DetailDTO的列表,并在一个请求中这样做。

此时,我必须获取DetailsData数据的列表,并通过foreach将其添加到MasterDTO中,这当然会导致对数据库服务器的大量请求。

有没有更好的解决办法?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-03-09 15:14:24

在您的数据调用中,对您的DetailData执行一个急切的加载。示例:

var r = context.MasterData.Include("DetailData")

DetailData应该是附加到MasterData实体的导航属性的名称。

这将导致将详细数据与您对MasterData的调用一起提取。

整个电话可能看起来是这样的:

代码语言:javascript
运行
复制
using (var context = new Context())
{
    context.LazyLoadingEnabled = false;
    var r = context.MasterData.Include("DetailData")
        .Select(d => new MasterDTO()
        {
            Id = d.Id,
            Name = d.Name,
            Details = d.Details.Select(dt => new DetailDTO()
            {
                Id = dt.Id,
                DetailName = dt.DetailName
            })
        });
}
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15312031

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档