简体   繁体   English

实体框架:提供者未返回 providermanifest 实例

[英]Entity Framework: The provider did not return a providermanifest instance

Entity Framework 6.0.1 my App.config:实体框架 6.0.1 我的 App.config:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <configSections>
    <!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
    <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.0" />
  </startup>
  <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="MyDataContext" connectionString="Data Source=MyDb;Initial Catalog=mycatalog;Persist Security Info=True;User ID=admin;Password=123;MultipleActiveResultSets=True"
      providerName="System.Data.SqlClient" />
  </connectionStrings>
</configuration>

And MyDataContext class for using EF:以及用于使用 EF 的MyDataContext类:

public partial class MyDataContext: DbContext
{
   static MyDataContext()
   {
       Database.SetInitializer<MyDataContext>(null);
   }

   public MyDataContext()
       : base("MyDataContext")
   {
   }
}

A context is created, but when I tried to get any entity or do anything with Database it throw exception创建了上下文,但是当我尝试获取任何实体或对数据库执行任何操作时,它会抛出异常

using (var db = new MyDataContext())
{
    var exists = db.Database.Exists();
}

exception is例外是

System.Data.ProviderIncompatibleException: The provider did not return a providermanifest instance
StackTrace:
   in System.Data.Common.DbProviderServices.GetProviderManifest(String manifestToken)
   in System.Data.Entity.ModelConfiguration.Utilities.DbConnectionExtensions.GetProviderInfo(DbConnection connection, DbProviderManifest& providerManifest)
   in System.Data.Entity.DbModelBuilder.Build(DbConnection providerConnection)
   in System.Data.Entity.Internal.LazyInternalContext.CreateModel(LazyInternalContext internalContext)
   in System.Data.Entity.Internal.RetryLazy`2.GetValue(TInput input)
   in System.Data.Entity.Internal.LazyInternalContext.InitializeContext()
   in System.Data.Entity.Internal.InternalContext.CreateObjectContextForDdlOps()
   in System.Data.Entity.Database.Exists()

with inner exception:内部例外:

System.Configuration.ConfigurationErrorException: Configuration system failed to initialize
StackTrace:
   в System.Configuration.ClientConfigurationSystem.OnConfigRemoved(Object sender, InternalConfigEventArgs e)
   в System.Configuration.Internal.InternalConfigRoot.RemoveConfigImpl(String configPath, BaseConfigurationRecord configRecord)
   в System.Configuration.BaseConfigurationRecord.GetSectionRecursive(String configKey, Boolean getLkg, Boolean checkPermission, Boolean getRuntimeObject, Boolean requestIsHere, Object& result, Object& resultRuntimeObject)
   в System.Configuration.BaseConfigurationRecord.GetSection(String configKey)
   в System.Configuration.ConfigurationManager.GetSection(String sectionName)
   в System.Xml.Schema.Parser..ctor(SchemaType schemaType, XmlNameTable nameTable, SchemaNames schemaNames, ValidationEventHandler eventHandler)
   в System.Xml.Schema.XmlSchema.Read(XmlReader reader, ValidationEventHandler validationEventHandler)
   в System.Data.Entity.Core.SchemaObjectModel.Schema.SomSchemaSetHelper.AddXmlSchemaToSet(XmlSchemaSet schemaSet, XmlSchemaResource schemaResource, HashSet`1 schemasAlreadyAdded)
   в System.Data.Entity.Core.SchemaObjectModel.Schema.SomSchemaSetHelper.ComputeSchemaSet(SchemaDataModelOption dataModel)
   в System.Data.Entity.Core.Common.Utils.Memoizer`2.<>c__DisplayClass2.<Evaluate>b__0()
   в System.Data.Entity.Core.Common.Utils.Memoizer`2.Result.GetValue()
   в System.Data.Entity.Core.Common.Utils.Memoizer`2.Evaluate(TArg arg)
   в System.Data.Entity.Core.SchemaObjectModel.Schema.SomSchemaSetHelper.GetSchemaSet(SchemaDataModelOption dataModel)
   в System.Data.Entity.Core.SchemaObjectModel.Schema.CreateXmlReaderSettings()
   в System.Data.Entity.Core.SchemaObjectModel.Schema.Parse(XmlReader sourceReader, String sourceLocation)
   в System.Data.Entity.Core.SchemaObjectModel.SchemaManager.ParseAndValidate(IEnumerable`1 xmlReaders, IEnumerable`1 sourceFilePaths, SchemaDataModelOption dataModel, AttributeValueNotification providerNotification, AttributeValueNotification providerManifestTokenNotification, ProviderManifestNeeded providerManifestNeeded, IList`1& schemaCollection)
   в System.Data.Entity.Core.SchemaObjectModel.SchemaManager.ParseAndValidate(IEnumerable`1 xmlReaders, IEnumerable`1 sourceFilePaths, SchemaDataModelOption dataModel, DbProviderManifest providerManifest, IList`1& schemaCollection)
   в System.Data.Entity.Core.SchemaObjectModel.SchemaManager.LoadProviderManifest(XmlReader xmlReader, String location, Boolean checkForSystemNamespace, Schema& schema)
   в System.Data.Entity.Core.Common.DbXmlEnabledProviderManifest.Load(XmlReader reader)
   в System.Data.Entity.Core.Common.DbXmlEnabledProviderManifest..ctor(XmlReader reader)
   в System.Data.Entity.SqlServer.SqlProviderManifest..ctor(String manifestToken)
   в System.Data.Entity.SqlServer.SqlProviderServices.GetDbProviderManifest(String versionHint)
   в System.Data.Entity.Core.Common.DbProviderServices.GetProviderManifest(String manifestToken)

and it with inner exception:

System.Configuration.ConfigurationErrorException: Unknown configuration section  userSettings. (C:\\Users\\Tema\\AppData\\Local\\Mgr\\Mgr.vshost.exe_Url_slqi2aqp0duilazpy21vojhl3ssnjluh\\1.0.0.0\\user.config line 3)
StackTrace:
   в System.Configuration.ConfigurationSchemaErrors.ThrowIfErrors(Boolean ignoreLocal)
   в System.Configuration.BaseConfigurationRecord.ThrowIfParseErrors(ConfigurationSchemaErrors schemaErrors)
   в System.Configuration.ClientConfigurationSystem.OnConfigRemoved(Object sender, InternalConfigEventArgs e)

Maybe anyone encountered this problem?也许有人遇到过这个问题? Thank you.谢谢你。

In my case I had to hack the .EDMX file and change the ProviderManifestToken="2008"就我而言,我不得不破解 .EDMX 文件并更改 ProviderManifestToken="2008"

  1. Open your Model.edmx in editor在编辑器中打开 Model.edmx
  2. Change the ProviderManifestToken="2012" to ProviderManifestToken="2008"将 ProviderManifestToken="2012" 更改为 ProviderManifestToken="2008"

Model.edmx 黑客

This exception can be thrown if the login information for the database isn't valid or if the server isn't found or is behind a firewall (basically, your program can't connect to the database).如果数据库的登录信息无效,或者服务器未找到或位于防火墙后面(基本上,您的程序无法连接到数据库),则可能会引发此异常。 Usually it comes with an inner exception that will tell you more about what happened.通常它带有一个内部异常,它会告诉你更多关于发生的事情。 Be sure to check for this.请务必检查这一点。 There may be other causes for this error, but that's the most likely I think.此错误可能还有其他原因,但我认为这是最有可能的原因。

Also, are you using SQL or Windows authentication?另外,您使用的是 SQL 还是 Windows 身份验证? If you're using SQL authentication, try adding integrated security=False to your connection string.如果您使用 SQL 身份验证,请尝试将integrated security=False添加到您的连接字符串。

Changed the ProviderManifestToken attribute value from 2012 and 2008 and all worked fine.从 2012 年和 2008 年更改了 ProviderManifestToken 属性值,一切正常。

Remember to open the .edmx file as a XML file请记住将 .edmx 文件作为 XML 文件打开

如果您希望将ProviderManifestToken设置为 2012,请检查UseLegacyProvider的值并确保将其设置为 False。

In my case I'm using Oracle with Oracle.ManagedDataAccess.EntityFramework.dll , and I use version 12.2.20190115 can solve this problem: https://www.nuget.org/packages/Oracle.ManagedDataAccess.EntityFramework/12.2.20190115在我的情况下,我将 Oracle 与Oracle.ManagedDataAccess.EntityFramework.dll一起Oracle.ManagedDataAccess.EntityFramework.dll ,我使用版本12.2.20190115可以解决这个问题: https : 12.2.20190115

Can try to check if the version of dll is correct.可以尝试检查dll的版本是否正确。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 提供程序未返回ProviderManifest实例 - The provider did not return a ProviderManifest instance EntityFramework 错误:提供程序未返回 ProviderManifest 实例 - EntityFramework error: The provider did not return a ProviderManifest instance SQLite.CodeFirst“提供程序未返回ProviderManifest实例。” - SQLite.CodeFirst “The provider did not return a ProviderManifest instance.” 提供者未返回 ProviderManifestToken 字符串实体框架 - The provider did not return a ProviderManifestToken string Entity Framework 实体框架提供程序错误 - Entity Framework provider error 找不到实体框架提供者 - No Entity Framework Provider Found 提供程序未返回ProviderManifestToken字符串 - The provider did not return a ProviderManifestToken string 在配置中更改实体框架提供程序 - Change Entity Framework provider in configuration 实体框架提供程序类型“FirebirdSql.Data.FirebirdClient.FirebirdClientFactory, FirebirdSql.Data.FirebirdClient”的“实例”成员 - The 'Instance' member of the Entity Framework provider type 'FirebirdSql.Data.FirebirdClient.FirebirdClientFactory, FirebirdSql.Data.FirebirdClient' 提供程序未返回ProviderManifestToken字符串EF - The provider did not return a ProviderManifestToken string EF
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM