使用DbMigrationsConfiguration将SetExecutionStrategy设置为SqlAzureExecutionStrategy?

Jam*_*ndy 15 entity-framework ef-migrations entity-framework-6.1 azure-sql-database

我今天看到一篇关于实现SqlAzureExecutionStrategy的帖子:

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

但是,我能找到的所有示例都使用从DbConfiguration继承的Configuration.我的项目使用的是EF6 Code First Migrations,它创建的Configuration继承自DbMigrationsConfiguration.此类不包含SetExecutionStrategy的定义,我找不到实际将SqlAzureExecutionStrategy(或任何SetExecutionStrategy)与DbMigrationsConfiguration结合使用的示例.

可以这样做吗?

Jam*_*ndy 32

如果有人遇到这个问题,这就是我们想到的:

创建一个继承自DbConfiguration(具有SetExecutionStrategy)的自定义类:

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

然后将此属性添加到DataContext,指定它是使用您的自定义类:

[DbConfigurationType(typeof(DataContextConfiguration))]
public class DataContext : DbContext, IDataContext
{
    ...
}
Run Code Online (Sandbox Code Playgroud)