2016-11-15 64 views
2

我創建啓動如何在容器中配置dbcontext?

services.AddTransient<MyContext>(_ => new MyContext(connectionString)); 

我注入在每個服務類,我需要的實體框架添加/編輯/刪除或什麼都這種情況下實體框架分貝範圍內。

private readonly MyContext context; 

public ArchiveService(MyContext context) 
{ 
    this.context = context; 
} 

對於IoC,我使用的是Microsoft.Extensions.DependencyInjection。 這意味着我的依賴注入容器負責處理db上下文。

我如何能夠確保這種情況下被設置?

我需要配置的東西處置分貝範圍內?

謝謝你的幫助。

+0

看到這一點:[上下文的壽命/範圍在一個winform應用](http://stackoverflow.com/questions/5663754/entity-framework-4-lifespan-scope-of-context-in-a-winform-應用) – Vikrant

回答

3

在asp.net的核心,這你AddTransient註冊的所有服務都與一個範圍設置在一起,這樣 - 當請求結束。 TransientScoped之間有什麼區別,那麼你可能會問?對於Transient - 爲每個分辨率創建新實例。就你的情況而言 - 你所有的服務類別都有不同的MyContext。所有這些將在請求結束時處理。對於Scoped - 對於給定請求(範圍)只會創建一個實例,因此您的所有服務都將共享相同的實例,並在請求結束時處理。