Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Entity Framework: The provider did not return a providermanifest instance

Entity Framework 6.0.1 my 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:

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.

like image 289
Temaska Avatar asked Oct 24 '13 19:10

Temaska


3 Answers

In my case I had to hack the .EDMX file and change the ProviderManifestToken="2008"

  1. Open your Model.edmx in editor
  2. Change the ProviderManifestToken="2012" to ProviderManifestToken="2008"

Model.edmx hack

like image 96
mitaka Avatar answered Nov 09 '22 17:11

mitaka


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? If you're using SQL authentication, try adding integrated security=False to your connection string.

like image 34
Steve Avatar answered Nov 09 '22 18:11

Steve


Changed the ProviderManifestToken attribute value from 2012 and 2008 and all worked fine.

Remember to open the .edmx file as a XML file

like image 9
Thoufeeq S L Avatar answered Nov 09 '22 18:11

Thoufeeq S L