c# - Entity Framework + PostgreSQL code-first -
first time here. i'm trying integrate entity framework postgresql using visual studio 2017 community:
from nuget, installed packages:
- entityframework.6.1.3
- npgsql.3.2.2
- entityframework6.npgsql.3.1.1
my project web api .net framework 4.6.2 (not core)
my web.config looks this
<system.data> <dbproviderfactories> <remove invariant="npgsql"/> <add name="npgsql data provider" invariant="npgsql" support="ff" description="data provider postgresql" type="npgsql.npgsqlfactory, npgsql, version=4.0.2.0, culture=neutral, publickeytoken=5d8b90d52f46fda7"/> </dbproviderfactories> </system.data> <entityframework> <defaultconnectionfactory type="npgsql.npgsqlconnectionfactory, npgsql"/> <providers> <provider invariantname="npgsql" type="npgsql.npgsqlservices, entityframework6.npgsql"/> </providers> </entityframework> but, in nuget packet manager's console, after issuing enable migrations, error:
checking if context targets existing database...
system.configuration.configurationerrorsexception: failed find or load registered .net framework data provider.in system.data.common.dbproviderfactories.getfactory(datarow providerrow)
in system.data.common.dbproviderfactories.getfactory(string providerinvariantname)
in system.data.entity.infrastructure.dependencyresolution.defaultproviderfactoryresolver.getservice(type type, object key, func3 handlefailedlookup)2 k)
in system.data.entity.infrastructure.dependencyresolution.defaultproviderfactoryresolver.getservice(type type, object key)
in system.data.entity.infrastructure.dependencyresolution.cachingdependencyresolver.<>c__displayclass1.<getservice>b__0(tuple
in system.collections.concurrent.concurrentdictionary2.getoradd(tkey key, func2 valuefactory)
in system.data.entity.infrastructure.dependencyresolution.cachingdependencyresolver.getservice(type type, object key)
in system.data.entity.infrastructure.dependencyresolution.resolverchain.<>c__displayclass3.b__0(idbdependencyresolver r)
in system.linq.enumerable.whereselectarrayiterator2.movenext()1 source, func
in system.linq.enumerable.firstordefault[tsource](ienumerable2 predicate)2.movenext()
in system.data.entity.infrastructure.dependencyresolution.resolverchain.getservice(type type, object key)
in system.data.entity.infrastructure.dependencyresolution.rootdependencyresolver.getservice(type type, object key)
in system.data.entity.infrastructure.dependencyresolution.resolverchain.<>c__displayclass3.<getservice>b__0(idbdependencyresolver r)
in system.linq.enumerable.whereselectarrayiterator
in system.linq.enumerable.firstordefault[tsource](ienumerable1 source, func2 predicate)
in system.data.entity.infrastructure.dependencyresolution.resolverchain.getservice(type type, object key)
in system.data.entity.infrastructure.dependencyresolution.compositeresolver2.getservice(type type, object key)1 resolver)
in system.data.entity.infrastructure.dependencyresolution.dbdependencyresolverextensions.getservice[t](idbdependencyresolver resolver, object key)
in system.data.entity.internal.lazyinternalconnection.createconnectionfromprovidername(string providerinvariantname)
in system.data.entity.internal.lazyinternalconnection.initializefromconnectionstringsetting(connectionstringsettings appconfigconnection)
in system.data.entity.internal.lazyinternalconnection.tryinitializefromappconfig(string name, appconfig config)
in system.data.entity.internal.lazyinternalconnection.initialize()
in system.data.entity.internal.lazyinternalconnection.get_connection()
in system.data.entity.internal.lazyinternalcontext.get_connection()
in system.data.entity.infrastructure.dbcontextinfo..ctor(type contexttype, dbproviderinfo modelproviderinfo, appconfig config, dbconnectioninfo connectioninfo, func
in system.data.entity.migrations.dbmigrator..ctor(dbmigrationsconfiguration configuration, dbcontext userscontext, databaseexistencestate existencestate, boolean calledbycreatedatabase)
in system.data.entity.migrations.dbmigrator..ctor(dbmigrationsconfiguration configuration)
in system.data.entity.migrations.design.migrationscaffolder..ctor(dbmigrationsconfiguration migrationsconfiguration)
in system.data.entity.migrations.design.toolingfacade.scaffoldrunner.run()
in system.appdomain.docallback(crossappdomaindelegate callbackdelegate)
in system.appdomain.docallback(crossappdomaindelegate callbackdelegate)
in system.data.entity.migrations.design.toolingfacade.run(baserunner runner)
in system.data.entity.migrations.design.toolingfacade.scaffoldinitialcreate(string language, string rootnamespace)
in system.data.entity.migrations.enablemigrationscommand.<>c__displayclass2.<.ctor>b__0()
in system.data.entity.migrations.migrationsdomaincommand.execute(action command)failed find or load registered .net framework data provider.
can me?
thanks in advance.
try installing npgsql gac windows installer. can lot of time.
also, check version number in dbproviderfactories using:
typeof(npgsql.npgsqlfactory).assemblyqualifiedname and make sure match.
Comments
Post a Comment