【问题标题】:No Entity Framework provider found for the ADO.NET provider未找到 ADO.NET 提供程序的实体框架提供程序
【发布时间】:2014-06-30 12:36:54
【问题描述】:

我一直在尝试使用 WCF 将一些数据插入到北风中。我不知道为什么找不到提供程序。

该服务已安装 EF6。

这是我的配置文件的 sn-p:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <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="northwindEntities" connectionString="metadata=res://*/NorthwindModel.csdl|res://*/NorthwindModel.ssdl|res://*/NorthwindModel.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=.;initial catalog=northwind;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient" />
  </connectionStrings>
  <startup>
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
  </startup>
  <system.serviceModel>
    <bindings>
      <basicHttpBinding>
        <binding name="OrdersEndPoint" />
      </basicHttpBinding>
    </bindings>
    <client>
      <endpoint address="http://localhost:8080/OrdersHelper" binding="basicHttpBinding" bindingConfiguration="OrdersEndPoint" contract="ServiceReference.IOrdersHelper" name="OrdersEndPoint" />
    </client>
  </system.serviceModel>
  <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>

DBContext 类:

public partial class northwindEntities : DbContext
    {
        public northwindEntities()
            : base("name=northwindEntities")
        {
        }

        protected override void OnModelCreating(DbModelBuilder modelBuilder)
        {
            throw new UnintentionalCodeFirstException();
        }

后跟实体属性和存储过程

【问题讨论】:

  • 不敢相信我没有早点看到它......我在我的服务和消费者上安装了不同的 EF 版本。问题解决了。
  • 为了其他用户的利益,请将您的解决方案添加为该问题的答案,然后将其标记为。
  • 我想添加一个答案,但我的声誉太低了。

标签: c# wcf app-config entity-framework-6


【解决方案1】:

不敢相信我没有早点看到它......我在我的服务和消费者上安装了不同的 EF 版本。问题解决了。

【讨论】:

    【解决方案2】:

    这是您的 Web.config 文件

       <?xml version="1.0" encoding="utf-8"?>
        <configuration>
          <configSections>
            <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
          </configSections>  
          <startup>
            <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
          </startup>
          <system.serviceModel>
            <bindings>
              <basicHttpBinding>
                <binding name="OrdersEndPoint" />
              </basicHttpBinding>
            </bindings>
            <client>
              <endpoint address="http://localhost:8080/OrdersHelper" binding="basicHttpBinding" bindingConfiguration="OrdersEndPoint" contract="ServiceReference.IOrdersHelper" name="OrdersEndPoint" />
            </client>
          </system.serviceModel>
          <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>
    
    
        <connectionStrings>
            <add name="northwindEntities" connectionString="metadata=res://*/NorthwindModel.csdl|res://*/NorthwindModel.ssdl|res://*/NorthwindModel.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=.;initial catalog=northwind;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient" />
          </connectionStrings>
    
    
        </configuration>
    

    您的 DbContext 类应如下所示

    public partial class northwindEntities : DbContext
        {
            public northwindEntities()
                : base("northwindEntities")
            {
            }
    
            protected override void OnModelCreating(DbModelBuilder modelBuilder)
            {
                throw new UnintentionalCodeFirstException();
            }
    

    【讨论】:

    • 配置是根标签,我不确定我理解你在说什么
    • 当然配置是根标签,我是说你的ConnectionStrings标签至少放在Web.config文件之前的配置标签之前,就像你说的那样是根标签。
    • 也不是 base("name=northwindEntities") 删除名称,只需键入 base("northwindEntities")。
    • 非常感谢您的帮助,问题是由于EF版本不同造成的。将两者都更新到 6.1.0 解决了这个问题。
    猜你喜欢
    • 1970-01-01
    • 2013-12-05
    • 1970-01-01
    • 1970-01-01
    • 2014-02-06
    • 2013-08-29
    • 2013-11-18
    • 1970-01-01
    相关资源
    最近更新 更多