0

数百のプロパティを持つ非常に大きなエンティティがあります。このすべてのエンティティを選択するために使用するリポジトリがあり、エンティティの IEnumerable を返します。

私のコントローラーでは、automapper を使用してこのエンティティのインデックス ViewModel にマップし、ViewModel 内のエンティティの 2 つのプロパティのみを使用します。2 つのプロパティを選択する場合に比べて、返されるまでにかなりの時間がかかります。エンティティのすべてのプロパティを選択してから、そのうちの 2 つだけを使用しているように見えます。

これを行うための推奨される方法は何でしょうか。リポジトリにビュー モデルを作成する必要がありますか?

グレアム

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 に答える