【发布时间】:2014-12-10 15:22:45
【问题描述】:
所以我查看了有相同错误的条目,要么不是同一个问题,要么我不理解它。
我有几个项目的解决方案。他们使用常见的Entity Frame Work 6 并将其包含在参考文献中。 WCF 项目使用Entity Frame 从数据库中获取数据非常有效。但是我的控制台应用程序给了我,
没有为 ADO.NET 提供程序找到实体框架提供程序 不变名称'System.Data.SqlClient'
当执行调用Entity Framework的相同代码时。
我想我在.config 文件中遗漏了一些东西,但我的连接字符串都是一样的。
实体框架 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 中? -
是的,我尝试将 EF App.Config 中的
和 部分添加到控制台 App.Config 中,但它在尝试初始化 EF 对象时出现错误。 “'System.Data.Entity.Internal.AppConfig' 的类型初始化程序引发了异常。”如果我只是添加 它仍然会给出原始错误。
标签: c# .net entity-framework connection-string