>挑戰:在實體框架核心中使用Include
時,根據嵌套導航屬性中的屬性過濾主查詢可能很棘手。本指南提供了一個解決方案。
解決方案:利用過濾的利用包括
>>實體框架核心5引入了過濾的Include,這是一種強大的功能,啟用了隨附的導航屬性的過濾。 受支持的操作員包括Where
,OrderBy
/OrderByDescending
,Skip
和Take
。
實現過濾的包括:
此查詢檢索博客及其相關帖子,但僅包括作者名稱為“我”的帖子。 注意
<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
>。
Where
DbSet
>過濾包括和投影:IQueryable
>
語句,甚至是過濾的語句。 但是,如果可以將應用於投影中的實體,則仍將應用。
以上是如何在實體框架核心中過濾包含的導航屬性?的詳細內容。更多資訊請關注PHP中文網其他相關文章!