Поставщик определяется типом соединения, а соединение создается его фабрикой соединений, которая установлена в статическом свойстве Database.DefaultConnectionFactory
. Значение по умолчанию для этого свойства SqlConnectionFactory
, поэтому, если вы не подключаетесь к другому серверу базы данных (например, SQL Server CE), оно должно просто работать. Если он не уверен, что ваша строка подключения верна. Это исключение иногда вызывается, если EF не может подключиться к серверу SQL (мне кажется, я видел это исключение либо с недопустимыми учетными данными, недопустимым именем базы данных или недопустимым именем экземпляра SQL-сервера).
Edit:
Для полноты: фабрика соединений используется, только если вы передаете строку соединения в контекст. Вы также можете передать весь экземпляр соединения, и фабрика соединений не будет использоваться. Маркер манифеста провайдера будет выведен из типа соединения, которое вы передадите в контекст.