フィルターには
が含まれます
フィルタリングを含めることにより、クエリ中にナビゲーション属性によって返されるデータ範囲を減らすことができます。これは、エンティティを含む属性に従ってフィルタリングする必要がある場合に特に便利です。
例
次のコードを検討してください:
このコードには、各ブログのすべての投稿と著者が含まれています。著者の名前に応じて結果をフィルタリングするには、操作場所を使用できます。
1 2 3 4 5 6 7 | using ( var context = new BloggingContext())
{
var blogs = context.Blogs
.Include(blog => blog.Posts)
.ThenInclude(post => post.Author)
.ToList();
}
|
ログイン後にコピー
サポートされた操作<支持>
EF Core 5は、フィルタリングのための次の操作をサポートします。
1 2 3 4 5 6 7 8 | using ( var context = new BloggingContext())
{
var blogs = context.Blogs
.Include(blog => blog.Posts)
.ThenInclude(post => post.Author)
.Where(blog => blog.Posts.Any(p => p.Author == "me" ))
.ToList();
}
|
ログイン後にコピー
ここで
Orderby(下降)/Thenby(DeShenging)
スキップ
を取る
- 重要な説明
- 各ナビゲーション属性により、1つのフィルターのみが許可されます。
- 後続のフィルタリングには、結果が蓄積されます。
- 遅延荷重が有効になっている場合でも、フィルタリングに含まれる荷重と見なされます。
フィルター式は、収集のフィルタリングに独立して使用できる「独立した」述語でなければなりません。
フィルターに含まれるフィルタリングとクエリフィルタリング-
フィルターには、メインクエリによって返されるアイテムの数には影響しません。メインクエリの結果をフィルタリングするには、操作の場合は別の場所を使用して含めます。 -
投影とフィルタリングには- が含まれます
投影は通常、それらがフィルタリングされているかどうかに関係なく含まれることを無視します。ただし、投影内のエンティティを含めることができる場合、含めることがそれに適用されます。 (注:元のテキストでは、予測とフィルタリングの説明が短すぎると、補足的な説明がここで明確になります。)-
以上がEF Coreのナビゲーションプロパティによって返されたデータをフィルタリングするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。