簡體   English   中英

具有默認值的自定義 where 子句擴展 EF Core 5.0.3

[英]Custom where clause extension with default values EF Core 5.0.3

我在每個查詢上都添加了這個,我不禁想到有一種方法可以做一個自定義的 where 擴展,讓它在我的查詢中作為默認值? 還是我想太多了?

我說的是isActiveisDeleted ,它們用於我的軟刪除列。

如果有所作為,我正在使用 EF Core 5.0.3,對我有什么用處我不,這只是一行,但我覺得分配的重復代碼代碼被削減了。 或者至少是一種更清潔的方式來執行它? 它在我將要查詢的每個 class 上。

public async Task<IActionResult> ClubRoles() {
    return View(await _context.ClubUsers.Where(w => w.isActive == true && w.isDeleted == false).ToListAsync();    
}

使用全局查詢過濾器足夠簡單: https://docs.microsoft.com/en-us/ef/core/querying/filters

您的案例是教科書用法

modelBuilder.Entity<Post>().HasQueryFilter(p => !p.IsDeleted);

如果你想忽略它

blogs = db.Blogs
    .Include(b => b.Posts)
    .IgnoreQueryFilters()
    .ToList();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM