Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

SetExecutionStrategy to SqlAzureExecutionStrategy with DbMigrationsConfiguration?

I saw a post today about implementing SqlAzureExecutionStrategy:

http://romiller.com/tag/sqlazureexecutionstrategy/

However, all examples I can find of this use a Configuration that inherits from DbConfiguration. My project is using EF6 Code First Migrations, and the Configuration it created inherits from DbMigrationsConfiguration. This class doesn't contain a definition for SetExecutionStrategy, and I can find no examples that actually combine SqlAzureExecutionStrategy (or any SetExecutionStrategy) with DbMigrationsConfiguration.

Can this be done?

like image 228
James in Indy Avatar asked Sep 26 '14 17:09

James in Indy


1 Answers

If anyone else comes across this question, this is what we figured out:

Create a custom class that inherits from DbConfiguration (which has SetExecutionStrategy):

public class DataContextConfiguration : DbConfiguration
{
    public DataContextConfiguration()
    {
        SetExecutionStrategy("System.Data.SqlClient", () => new SqlAzureExecutionStrategy());
    }
}

Then add this attribute to your DataContext, specifying that it is to use your custom class:

[DbConfigurationType(typeof(DataContextConfiguration))]
public class DataContext : DbContext, IDataContext
{
    ...
}
like image 101
James in Indy Avatar answered Sep 20 '22 18:09

James in Indy