首頁 >後端開發 >C++ >如何在實體框架核心中過濾包含的導航屬性?

如何在實體框架核心中過濾包含的導航屬性?

Patricia Arquette
Patricia Arquette原創
2025-01-31 02:51:08692瀏覽

How Can I Filter Included Navigation Properties in Entity Framework Core?

>過濾包括EF核心中的導航屬性:綜合指南

>

>挑戰:在實體框架核心中使用Include時,根據嵌套導航屬性中的屬性過濾主查詢可能很棘手。本指南提供了一個解決方案。

解決方案:利用過濾的利用包括

>

>實體框架核心5引入了過濾的Include,這是一種強大的功能,啟用了隨附的導航屬性的過濾。 受支持的操作員包括WhereOrderBy/OrderByDescendingSkipTake

實現過濾的包括: 讓我們用一個示例說明:

此查詢檢索博客及其相關帖子,但僅包括作者名稱為“我”的帖子。 注意
<code class="language-csharp">var blogs = context.Blogs
    .Include(blog => blog.Posts.Where(post => post.Author == "me"))
    .ThenInclude(post => post.Author)
    .ToList();</code>
>方法中的

子句。 Where> Include

關鍵因素:

每個導航每個導航

    單個濾波器:
  • 每個導航屬性允許使用一個過濾器。
  • 獨立謂詞:的過濾器被視為獨立謂詞。 Include
  • 懶惰加載覆蓋:過濾包括,無論懶惰加載配置如何。 >
  • 累積結果:隨後的過濾包括累積結果。

關係修復和過濾包括:>

注意到關係修復。 它可能會在導航屬性的集合中增加額外的條目,並有可能導致意外結果。

過濾包括與直接查詢過濾:

> 僅影響隨附的導航屬性,而不是主要查詢。 要根據導航屬性過濾主查詢,請直接在

>或

>上直接使用Filtered Include>。 WhereDbSet>過濾包括和投影:IQueryable>

>投影通常忽略

語句,甚至是過濾的語句。 但是,如果可以將應用於投影中的實體,則仍將應用。

以上是如何在實體框架核心中過濾包含的導航屬性?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn