Я пытался создать набор пользовательских классов для создания своего собственного провайдера, с которым будет взаимодействовать Entity Framework.Я создал свой пользовательский класс, унаследованный от абстрактного класса DbProviderFactory, и только начал тестирование, чтобы выяснить, могу ли я заставить его общаться с EF, но у меня возникли проблемы.
<configuration>
<system.data>
<DbProviderFactories>
<add name="Custom Data Provider"
invariant="CustomClient"
description=".Net Framework Data Provider for Custom"
type="CustomClient.CustomProviderFactory, CustomClient,
Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
</DbProviderFactories>
</system.data>
<connectionStrings>
<add name="AdventureWorksEntities"
connectionString="metadata=...;
provider=CustomClient;
provider connection string="data source=.;
initial catalog=AdventureWorks;integrated security=True;
multipleactiveresultsets=True;App=EntityFramework""
providerName="System.Data.EntityClient" />
</connectionStrings>
</configuration>
С моим CustomClient, определенным вышеЯ думал, что будет плавно перейти к совершенству Entity, но когда мой код пытается создать новый объект AdventureWorksEntities, я получаю следующее исключение:
InvalidOperationException Запрошенная реализация .Net Framework Data Provider не имеетПоле экземпляра производного типа System.Data.Common.DbProviderFactory.
При просмотре доступных переопределений для DbProviderFactory не упоминается элемент Instance .Я не совсем уверен, зачем ему это поле, если оно не является частью класса / интерфейса для DbProviderFactory.Является ли исправление таким же простым, как предоставление поля с именем Экземпляр , которое возвращает объект моего пользовательского типа?