1

asp.net mvc Web アプリケーション内に、次のアクション メソッドがあります。

public JsonResult LoadZoneByDataCenter(string id)
        {
            var zonelist = repository.getrealtedzone(Convert.ToInt32(id)).ToList();
//code goes here

次のモデル リポジトリ メソッドを呼び出します:-

 public IQueryable<Zone> getrealtedzone(int? dcid) {

         return   tms.Zones.Where(a=> a.DataCenterID == dcid || dcid == null);
        }

現在、アクション メソッドからデータベースを解釈する .tolist() を呼び出していますが、私の質問は、コントローラー内またはモデル クラス内で .tolist() を呼び出すのに最適な場所とその理由です。

ありがとう

4

1 に答える 1

2

.ToList()リポジトリではなく、コントローラーで呼び出す方がよいでしょう。このようにして、リポジトリからの複数の複雑なクエリを実行して組み合わせて、単一のデータベース呼び出しにすることができます。そして、ビューが必要とするデータのすべての組み合わせを取得したら、呼び出し.ToList()て SQL クエリを実行します。そうしないと、SQL JOIN で処理できるものについて、複数のクエリを作成することになります。

于 2013-11-13T09:50:31.427 に答える