1

私のリポジトリから、ToList() メソッドを使用して別のリストを返します。

問題は、この返された結果 (つまり、List 型) に対してさらに LINQ を実行すると、これに対するデータベース呼び出しも生成されることです。どうやら、この 2 番目の linq calll は純粋な LINQ to Entity であり、データベースを呼び出すべきではありません。私がやっていることを以下に見てください。

List<User> us = userRepository.GetMany(u => filterStatusIds.Contains(u.UserStatus.Id));
if (!string.IsNullOrEmpty(name))
us = (from u in us
      where u.DisplayName.Contains(name)
      select u).ToList(); // this ToList should not call database

この追加のデータベース呼び出しを停止するための助けやアイデアはありますか?

4

1 に答える 1

1

リポジトリから戻るIEnumerable<User>IQueryable<T>、データベースにクエリを実行しません。

ToList() の後、2 回目の呼び出しのみがこれを行います。

于 2012-05-07T09:28:06.530 に答える