ef core 全域性過濾

2022-03-31 10:06:45 字數 1612 閱讀 4221

有些固定的條件,基本每個查詢的時候需要帶的條件,我們可以使用全域性過濾來幫我們,這樣後面的查詢就不用每次都帶條件了。

微軟自帶的:

特殊針對的過濾:

準備:nuget    z.entityframework.plus.efcore

例子:現在我的表中有4條資料,兩條是不需要的,需要過濾這兩條資料

我們過濾掉isdeleted=1的資料

① 建立過濾配置檔案  dbfilterconfiguration.cs

新增方法

///

///初始化全域性的過濾,如軟自帶的

/// ///

過濾 ///

builder

public

static

void

initgobalfilter(imutableentitytype entitytype, modelbuilder modelbuilder)

ienumerable

props =entitytype.getproperties();

if (props.any(x => x.name == "

isdeleted"))

, parameter, expression.constant("

isdeleted

")),

expression.constant(defaultvalue));

modelbuilder.entity(entitytype.clrtype).hasqueryfilter(expression.lambda(body, parameter));

//if (entitytype.name.tolower().contains("view"))

//

//else

//}}

view code

在上下文中的onmodelcreating方法新增**

protected

override

void

onmodelcreating(modelbuilder modelbuilder)

}

這樣我們每次查詢的時候都會把isdeleted=1的資料過濾

②使用z.entityframework.plus.efcore 針對表,檢視強過濾

在dbfilterconfiguration.cs中加如下**

///

///正針對表進行過濾

/// ///

public

static

void

initcontextfilter(mydbcontext db)

效果:

///

///測試efcore

EFCORE筆記 全域性查詢篩選器

全域性查詢篩選器 全域性查詢篩選器用於全域性設定篩選資料的條件。常見的應用場景有 軟刪除,多租戶,禁用,啟用,多使用者部落格系統。全域性查詢篩選器可以精簡 可以提高 質量 防止開發者忘記加條件。public class blog public string name public string ur...

Vue過濾器 區域性和全域性過濾

什麼是過濾器?用來格式化資料的乙個函式 例如 10 price 日期的格式化 vue 1.x 版本借鑑了 angular 提供 10 個過濾器,包括有 日期 小數點位數保留 貨幣 大小寫 等 vue 2.x 廢棄了這 10個過濾器,但是它提供了自定義過濾器的方式 使用方式 全域性定義過濾器 p vu...

vue全域性過濾器配置

有時乙個過濾器需要在專案中多次使用,此時可以將該過濾器定義為全域性過濾器,全域性過濾器在main.js下配置。以時間過濾器為例,當為區域性過濾器寫為 filters if isnan m m 0 else if isnan d d 0 else return y m d date.totimestr...