私のコントローラには、IEnumerableのEFエンティティを返すアクションがいくつかあります。ASP.NET MVC、EF:IEnumerableの代わりにアクションメソッドを返すようにする
私はこれらのアクションメソッドを代わりにリストを返すように考えていました(ビューに戻す前にmodel.ToList()を呼び出すだけです)。
私はそれを行うに思っている二つの理由があります:私が戻るならば、私は(/ onactionexecuting onactionexecuted)BaseControllerクラスのactionmethodsの各々のパフォーマンスを測定してい
- まずIEnumerableでは、onactionexecutedメソッドの後までクエリは実行されません。
- 第2に、私はOnActionExecutedの中に私の "サービス層"が使用している接続を処分することを計画していましたが、そこに配置すると、モデルは取り出されませんでした。
私の質問は、これを行うことの任意の欠点ですか? すべてのIEnumerableモデルが完全にトラバースされるので、使用されないデータを取得することは問題ではありません。
ありがとうございました。
データをビューに渡す前に、クエリがマテリアライズ(実行)されていることを確認する必要があります。 'ToList()'を呼び出すことはこれを行う一つの方法です。 –