13

я увидел пост сегодня о реализации SqlAzureExecutionStrategy:SetExecutionStrategy to SqlAzureExecutionStrategy с DbMigrationsConfiguration?

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

Однако все примеры, которые я могу найти этого использовать конфигурацию, которая наследуется от DBConfiguration. Мой проект использует EF6 Code First Migrations, а созданная им конфигурация наследуется от DbMigrationsConfiguration. Этот класс не содержит определения для SetExecutionStrategy, и я не могу найти примеров, которые фактически объединяют SqlAzureExecutionStrategy (или любую SetExecutionStrategy) с DbMigrationsConfiguration.

Можно ли это сделать?

ответ

27

Если кто-то попадается этот вопрос, это то, что мы выяснили:

Создайте пользовательский класс, который наследует от DBConfiguration (который имеет SetExecutionStrategy):

Затем добавьте этот атрибут в свой DataContext, указав, что он должен использовать свой собственный класс:

[DbConfigurationType(typeof(DataContextConfiguration))] 
public class DataContext : DbContext, IDataContext 
{ 
    ... 
} 
+0

Что я нашел, так это то, что найдены оба вида конфигурации. Найден мой конфигурационный класс и выполняется конструктор независимо от вышеуказанной проблемы. Другими словами, это сработало для меня. –

3

После дополнительного изучения, теперь я думаю, что правильный ответ тх t: DbMigrationsConfiguration полностью разделен и настраивает только параметры миграции. Вот почему он не наследует или не имеет таких же опций, как DbConfiguration.

Он не загружен и не имеет значения для фактической работы.

Таким образом, вы можете (и должны) объявить отдельный класс на основе DbConfiguration, чтобы настроить поведение во время выполнения.

Я добавил некоторые трассировки, и я увидел, что при первом использовании DatabaseContext в приложении он запускает миграцию и конфигурацию переноса. Но при первом использовании DatabaseContext (например, для загрузки некоторых данных из базы данных) он также загрузит ваш класс DbConfiguration.

Так что я не думаю, что есть какая-то проблема.