簡體   English   中英

使用 InMemoryDatabase 時是否需要處理 DbContext?

[英]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.

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