0

我有一个非常大的实体,有几百个属性。我有一个存储库,用于选择所有实体并返回实体的 IEnumerable。

然后在我的控制器中,我使用 automapper 映射到该实体的索引 ViewModel,它只使用 ViewModel 中实体的两个属性。与选择两个属性相比,返回需要相当长的时间。似乎它正在选择实体的所有属性,然后只使用其中两个。

这样做的推荐方法是什么。我需要在存储库中创建视图模型吗?

格雷姆

4

1 回答 1

2

您可以传递 DTO 或不同的模型。

public class LargeEntityDto
{
    public string Foo { get; set; }
    public string Bar { get; set; }
}

然后在您的存储库中

public IEnumerable<LargeEntityDto> GetLargeEntityDtos()
{
   return context.LargeEntities
      .Select(e => new LargeEntityDto { Foo = e.Foo, Bar = e.Bar});
}
于 2011-10-14T01:58:25.530 回答