我超越了一個使用物體框架的 WPF 專案。我之前的人使用了一個全域 DbContext。經過一番閱讀,很明顯這是一種不好的做法,原因有很多。現在我的作業是重構專案以使用 DbContextFactory 并為每個作業單元創建新的 DbContext。一種方法,即SaveSales呼叫另一種方法IncreaseReceiptNumber。IncreaseReceiptNumber將一個條目添加到表中并呼叫 SaveChanges 。現在SaveSales我在里面創建了一個DbContextwith using (var clientDB = dbContextFactory.Create() {}。我的問題是,在這種情況下,我應該將 from 傳遞DbContext給SaveSalestoIncreaseReceiptNumber還是應該IncreaseReceiptNumber創建它自己的DbContext?或者在更一般的意義上,如果每個方法都屬于作業單元,是否應該創建一個新的DbContext或者可以通過引數傳遞?DbContext
uj5u.com熱心網友回復:
IMO,這個問題沒有單一的答案。您必須針對每種情況決定是否需要多個連接的開銷(池化的開銷很小,但存在),單個 DbContext 的共享是否提供了額外的好處(物體已附加),以及共享是否會使事情變得更加困難(您在回圈中呼叫該方法,并冒“連接已打開”錯誤的風險)。必須根據具體情況權衡這些因素。對于它的價值,我已經完成了所有這些事情......正如他們所說,使用正確的工具來完成這項作業。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/448327.html
