CreateDatabaseIfNotExists.InitializeDatabase是原子?

时间:2016-01-27 22:11:45

标签: c# entity-framework

这似乎是一个显而易见的问题,但是CreateDatabaseIfNotExists.InitializeDatabase是原子的吗?

目前我的代码与下面类似。这是为了确保数据库创建完全完成,或者数据库不存在。

public class MyContext : CreateDatabaseIfNotExists<MyContext>
{
    public override void InitializeDatabase(MyContext context)
    {
        base.InitializeDatabase(context);

        //Removed custom initialization code
    }

    protected override void Seed(MyContext context)
    {
        //Removed adding / updating seed data

        context.SaveChanges();

        base.Seed(context);
    }
}

public static class DbCreator
{
    public static void CreateDatabase()
    {
        using (MyContext dbContext = new MyContext())
        {
            try
            {
                var dbIntializer = new MyDbInitializer();
                dbIntializer.InitializeDatabase(dbContext);
            }
            catch (Exception ex)
            {
                dbContext.Database.Delete();

                throw;
            }
        }
    }
}

我在一些明显的地方寻找答案,例如https://msdn.microsoft.com/en-us/library/gg696403(v=vs.113).aspx

我正在使用Entity Framework 6.1.3

0 个答案:

没有答案