簡體   English   中英

如何通過Web API應用程序最佳利用DBContext

[英]How to best utilize DBContext with a Web API application

我有一個Web API,它使用Entity Framework DBContext執行CRUD操作。 我的問題如下:

最初,我使用了DBContext的靜態實例。 但是,使用這種格式,當我再次查詢數據集時,不會顯示對數據庫表的任何更改; 數據是陳舊的。

作為臨時修復,在我所有公共類函數的開頭,我正在創建一個新的DBContext對象,然后調用該對象以從數據庫中獲取數據。 由於許多原因,這不是最好的主意。 但是當我使用這種技術時,數據不再陳舊。

如何適當地利用DBContext,以便多個用戶始終可以從請求中看到當前數據庫數據? 是否應該將DBContext作為字段放入我的類中,並在該類的構造函數中實例化它? 在那種情況下,每個類都應該有自己的DBContext對象嗎?

是否有適當使用DBContext的最佳實踐? 我擔心過時的數據和不正確的結果會推送給我的用戶。

DbContext不是線程安全的,因此對於服務器代碼而言,使其靜態化不是一件好事。 創建DbContext的開銷很低,所以我不明白為什么我們必須避免使其實例變量可變。

還應注意,實體框架緩存數據。 如果直接在數據庫中對緩存的數據進行更改,則在創建新的DbContext或告知基礎ObjectContext 刷新之前,Entity Framework不會看到這些更改。

暫無
暫無

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

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