Skip to main content

В этом разделе представлено руководство по доступу к базе данных SQL Azure с помощью платформы Entity Framework. Методы, приведенные в этом разделе, относятся к моделям, созданным в Code First и в конструкторе Entity Framework.

Entity Framework может подключаться к SQL Azure без какой-либо дополнительной настройки, просто как к любой другой базе данных SQL Server. Это верно для моделей, созданных с помощью Code First и конструктора Entity Framework, — как при подключении к существующей базе данных SQL Azure, так и при создании новой базы данных в Entity Framework.

Однако есть ряд характеристик базы данных SQL Azure, которые следует принимать во внимание при использовании платформы EF (см. ниже).

Мы работаем над изменением EF для обеспечения лучшей поддержки SQL Azure. Предоставляется возможность отслеживания изменений, реализуемых с помощью связанного рабочего элемента CodePlex.

 

Обработка ошибок соединения

Потери соединения, классифицируемые как общая проблема сети, при доступе к SQL Azure случаются довольно часто и должны учитываться. Платформа EF не имеет собственной поддержки повторения операции при потере соединения, хотя эта функция остается в списке невыполненной работы. В записи Обработка ошибок соединений SQL Azure и Entity Framework содержатся сведения об обработке ошибок соединения с EF.

 

Федерации SQL Azure

Текущую версию платформы Entity Framework можно использовать для работы с федерациями SQL Azure, однако федеративная база данных не может быть создана платформой Entity Framework. Наша консультативная команда выпустила серию записей в блогах с целью предоставления инструкций по распространенным сценариям и проблемам, возникающим при работе с платформой Entity Framework и федерациями SQL Azure.

Первая запись в этой серии — Федерации SQL Azure с Code First в Entity Framework — отличное руководство по началу работы. В нем содержится правильная процедура отправки инструкции USE FEDERATION до отправки запросов к базе данных через Entity Framework (выполнения запросов или операций обновления).

Следующая запись блога — Представление о поддержке режима No-MARS в федерациях SQL Azure и Entity Framework — посвящена влиянию отсутствия поддержки режима MARS на приложения платформы Entity Framework.

Ниже приведены общие правила и рекомендации по использованию федераций SQL Azure с платформой Entity Framework.

  • Приложению на основе Entity Framework необходимо учитывать федерации и управлять доступом к их различным членам. Это означает, что приложение должно явно открыть соединение с хранилищем, с которым будет связан контекст, и выполнить инструкцию USE FEDERATION для подключения к правильному члену федерации, прежде чем взаимодействовать с базой данных через Entity Framework.
  • Любая необходимая транзакция базы данных должна происходить после выполнения инструкции USE FEDERATION. Причина этого в том, что федеративные базы данных не поддерживают инструкцию USE FEDERATION в самой транзакции.
  • Все повторные попытки соединения также должны обрабатываться приложением.
  • Экземпляры класса контекста не должны распространяться на членов федерации. Как правило, это также означает, что все изменения, управляемые контекстом, должны быть связаны с одним членом федерации. Причина в том, что в момент вызова метод SaveChanges произведет соответствующие операции модификации данных базы данных только для того члена федерации, на которого в настоящий момент указывает связанное соединение с хранилищем.