2016-12-16 1 views
0

) dbcontextは、これは私がIdsJsonConverterアクセスdbcontext

使用する方法であるスコープの寿命

public void ConfigureServices(IServiceCollection services) 
    { 
     services.AddScoped((_) => new MyDatabase(Configuration.GetConnectionString("DefaultConnection"))); 

を使用して、サービスコンテナに追加されます

[JsonConverter(typeof(IdsJsonConverter))] 
    public virtual ICollection<TAG> TAGs { get; set; } 
+0

静的変数としてIoCコンテナを保存することができます。次に、ReadJsonでそのコンテナを取得し、DbContextインスタンスを解決します。 –

+0

静的なdbcontextを使用してmvcのコアではお勧めしないようです –

+0

私は静的なdbcontextではなく、IoCのコンテナを意味します。私はMVC COREについてはわかりませんが、AutoFacを使用すると、コンテナが必要になり、そのコンテナをどこかに保存して使用することができます。 –

答えて

1

あなたはその後、いくつかの場所で静的変数として、このサービス・プロバイダを割り当てる

var serviceProvider = services.BuildServiceProvider(); 

あなたConfigureServices内のコードの下に呼び出すことができます。例:App.ServiceProviderあなたのReadJson

App.ServiceProvider.GetService<MyDatabase>(); 

あなたは、これが機能するにはMicrosoft.Framework.DependencyInjectionを必要としています。

+0

あなたはserviceProviderを静的な場所に保管していますか?serviceProvider.GetServiceを呼び出してサービスを取得しますか();? –

+0

私は今DbContextを得ることができます、この方法はシンプルでエレガントです。 –