大实体和ViewModel映射

时间:2011-10-14 01:37:28

标签: asp.net-mvc-3 entity-framework entity-framework-4 automapper automapper-2

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

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

建议的方法是什么?我是否需要在存储库中创建视图模型?

格雷姆

1 个答案:

答案 0 :(得分: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});
}