0

Country 、 State 、 City の 3 つのエンティティがあるとします。また、関係は City->State->Country です。今、私は次のような検索のクエリを持っています

 return container.Countries.Include("States.Cities")
.Where(c=>c.States.Sum(s.Population)>10000)
.Search(filter)        
.Skip(startIndex)    
.Take(itemCount)
.ToList();

上記のクエリですべての州に都市を含めていますが、Takeメソッドの後、 ToListメソッドの前にあるクエリの最後に含めたいと考えています。クエリが 50 レコードを返すとします。その 50 レコードに対してのみ州に都市を含めたいとします。上記のクエリのようにすべての州ではありません。誰かが私がそれを行う方法を助けることができますか? どんな助けも非常に重要です。これは単なるダミー クエリであり、パフォーマンスの観点からこれを実行したいと考えています。前もって感謝します

4

2 に答える 2

1

Includeクエリを入力する場所に違いはありません。これは単なる動作修飾子であり、表示された瞬間に実行されるわけではありません。操作さえすれIQueryable Includeば、どこに置いても同じ効果があります。

于 2012-08-23T06:29:04.520 に答える
1

System.Data.Entityコードの名前空間をインポートするのを忘れていませんか? これを見て

OfType() の後に Include() を使用するには?

いずれにせよ、あなたのコードには問題ないと思います。以前のすべてのメソッドToListが返さIQueryableれるか、そのようなものになります。つまり、遅延評価です。したがって、メソッドの呼び出し順序に関係なく、同じパフォーマンスが得られます。

于 2012-08-23T06:23:03.150 に答える