![](/img/trans.png)
[英]Do I need to call context.dispose when adding the dbcontext with DI?
[英]Do I need to Dispose DbContext when using an InMemoryDatabase?
在我的單元測試中,我將 EF Core 2.2 與InMemoryDatabase一起使用,例如:
var dbOptions = new DbContextOptionsBuilder<MyContext>().UseInMemoryDatabase("Foo").Options;
using (var context = new MyContext(dbOptions));
{
// Do stuff..
}
使用UseInMemoryDatabase
,我真的需要處理DbContext
嗎? 閱讀Jon Gallants 博客后,我意識到即使使用真正的 SQL 數據庫提供程序,也不總是需要Dispose()
。 使用 InMemoryDatabase 時處理DbContext
有什么意義? 我可以把它留給GC嗎?
只要上下文沒有依賴關系,比如應該在處置時釋放的數據庫連接或文件資源,你就可以省略處置。
所有超出范圍的引用都會自動標記為垃圾收集。
從代碼的外觀來看,您有一個using
塊,在我看來這是一件好事,因為一旦運行代碼離開您的using
塊,就會調用Dispose
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.