i have autofac with context
builder.RegisterType<WebRepositoryContext>().WithParameter("mode", (GlobalVariables.DataBaseMode)).InstancePerLifetimeScope();
switch initializer
private static void InitializeDataStore()
{
switch (GlobalVariables.DataBaseMode)
{
case DataBaseMode.MsSql:
{
Database.SetInitializer(new MigrateDatabaseToLatestVersion<WebRepositoryContext, Repository.Migrations.Configuration>());
var configuration = new Repository.Migrations.Configuration();
var migrator = new DbMigrator(configuration);
if (migrator.GetPendingMigrations().Any())
migrator.Update();
}
break;
case DataBaseMode.Postgres:
{
Database.SetInitializer(new PostgresInitializer());
}
break;
}
}
initializer
public class PostgresInitializer : IDatabaseInitializer<WebRepositoryContext>
{
public void InitializeDatabase(WebRepositoryContext context)
{
//create database
var h = new PostgresHelper(context);
h.Create();
//seed database
Seed(context);
}
protected virtual void Seed(WebRepositoryContext context)
{
var seed = new WebRepositorySeed(context);
seed.Start();
}
}
and when i try to get data in project, like var mainPage = DataContext.MainPage.First();
in Home Controller i got "The ObjectContext instance has been disposed and can no longer be used for operations that require a connection."
public class HomeController : BaseController
where public WebRepositoryContext DataContext { get; set; }
probably, initialiser dispose context, which is created by autofac. how to prevent it?