Итак, я посмотрел записи с одинаковой ошибкой, и это не проблема, или я не понимаю ее.Проект Common Entity Framework «Поставщик базы данных не существует для провайдера ADO.NET»
У меня есть решение с несколькими проектами. Они используют общий Entity Frame Work 6
и включают в него ссылки. Проект WCF
отлично работает с использованием Entity Frame
для получения данных из базы данных. Но моя консольное приложение дает мне,
Нет Entity Framework поставщик найдено для поставщика ADO.NET с инвариантного названием «System.Data.SqlClient»
при выполнении тот же код, который вызывает Entity Framework
.
Я думаю, что у меня что-то отсутствует в файле .config
, но мои строки подключения все одинаковы.
Entity Framework App.Config:
<configuration>
<connectionStrings>
<add name="SafetyPortalEntities" connectionString="metadata=res://*/EntityModels.SafetyPortalModel.csdl|res://*/EntityModels.SafetyPortalModel.ssdl|res://*/EntityModels.SafetyPortalModel.msl;provider=System.Data.SqlClient;provider connection string="data source=ndmasdev;initial catalog=SafetyPortal;integrated security=True;multipleactiveresultsets=True;application name=EntityFramework"" providerName="System.Data.EntityClient" />
</connectionStrings>
<entityFramework>
<defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework" />
<providers>
<provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
</providers>
</entityFramework>
</configuration>
WCF Web.config:
<configuration>
<connectionStrings>
<add name="SafetyPortalEntities" connectionString="metadata=res://*/EntityModels.SafetyPortalModel.csdl|res://*/EntityModels.SafetyPortalModel.ssdl|res://*/EntityModels.SafetyPortalModel.msl;provider=System.Data.SqlClient;provider connection string="data source=ndmasdev;initial catalog=SafetyPortal;integrated security=True;multipleactiveresultsets=True;application name=EntityFramework"" providerName="System.Data.EntityClient" />
</connectionStrings>
</configuration>
Консоль App.config:
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
</startup>
<configSections>
<section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
</configSections>
<connectionStrings>
<add name="SafetyPortalEntities" connectionString="metadata=res://*/EntityModels.SafetyPortalModel.csdl|res://*/EntityModels.SafetyPortalModel.ssdl|res://*/EntityModels.SafetyPortalModel.msl;provider=System.Data.SqlClient;provider connection string="data source=ndmasdev;initial catalog=SafetyPortal;integrated security=True;multipleactiveresultsets=True;application name=EntityFramework"" providerName="System.Data.EntityClient" />
</connectionStrings>
</configuration>
Я думаю, что EF app.config не используется во время выполнения. Вы пытались скопировать раздел конфигурации 'entityFramework' в консольный app.config? – Rhumborl
Да, я попытался добавить части и из EF App.Config в Console App.Config, и это дает мне ошибку при попытке инициализировать объект EF. «Инициализатор типа для« System.Data.Entity.Internal.AppConfig »сделал исключение». Если я просто добавлю , он все равно выдаст исходную ошибку. –
runfastman